2017-05-09 104 views
0

我正在讀取舊版csv文件中的值。這個文件有很多錯誤的數據,它應該只有時間值,但有時它有日期值。 我試圖有效時間moment.js,但是當我運行此代碼:Moment.js無法通過日期時的有效時間

const moment = require('moment'); 
console.log(moment('19/07/9130','hh:mm').isValid()); 

它返回true,我做錯了什麼?

回答

0

1. 首先,你正在給出錯誤的格式在矩功能,你傳遞數據在DD/MM/YYYY格式和定義格式hh:mm。你應該傳遞正確的格式。

2. 19/07/9130有效日期有9130年,這是絕對有效的未來一年。如果你想限制最大的一年,您可以使用isBefore方法

var mydate = moment('19/07/9130', 'DD/MM/YYYY'); 
var isValid = mydate.isValid() && mydate.isBefore('2050-01-01'); 
+0

我認爲你不明白,19/07/1930的值是錯誤的,因爲我想要的是一個時間值。我正在閱讀一箇舊的csv文件,它有很多錯誤的值。我想驗證,如果我從csv閱讀的價值是有效的時間 – thur

+0

另外我更新的問題來解釋更好 – thur

0

閱讀更多Moment.jsdocs,我找到了第三個參數,使瞬間使用嚴格的解析。

const moment = require('moment'); 
console.log(moment('19/07/9130','hh:mm',true).isValid()); 

這工作正常!