我正在讀取舊版csv文件中的值。這個文件有很多錯誤的數據,它應該只有時間值,但有時它有日期值。 我試圖有效時間moment.js
,但是當我運行此代碼:Moment.js無法通過日期時的有效時間
const moment = require('moment');
console.log(moment('19/07/9130','hh:mm').isValid());
它返回true
,我做錯了什麼?
我正在讀取舊版csv文件中的值。這個文件有很多錯誤的數據,它應該只有時間值,但有時它有日期值。 我試圖有效時間moment.js
,但是當我運行此代碼:Moment.js無法通過日期時的有效時間
const moment = require('moment');
console.log(moment('19/07/9130','hh:mm').isValid());
它返回true
,我做錯了什麼?
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');
閱讀更多Moment.js
docs,我找到了第三個參數,使瞬間使用嚴格的解析。
const moment = require('moment');
console.log(moment('19/07/9130','hh:mm',true).isValid());
這工作正常!
我認爲你不明白,19/07/1930的值是錯誤的,因爲我想要的是一個時間值。我正在閱讀一箇舊的csv文件,它有很多錯誤的值。我想驗證,如果我從csv閱讀的價值是有效的時間 – thur
另外我更新的問題來解釋更好 – thur