2015-05-08 119 views
0

我必須根據文化的日期格式驗證日期。例如,我可能需要驗證日期或英文文化(「MM/DD/YYYY 「)或意大利文化(」DD/MM/YYYY「)。根據文化格式確認日期和Moment.js

由於某些原因,日期總是以英語文化來驗證。 因此,例如,我想驗證一個英文格式的日期:

moment.locale('en'); // <-- I set the culture 

moment('12/13/2015').isValid(); // <-- Return true, ok 
moment('13/12/2015').isValid(); // <-- Return false, ok 

現在我要驗證的同一日期,只改變文化:

moment.locale('it'); // <-- I set the culture 

moment('12/13/2015').isValid(); // <-- Return true, but it should be false 
moment('13/12/2015').isValid(); // <-- Return false, but it should be true 

如何我一定要使用moment.js驗證日期? 謝謝。

回答

1

與已知的格式驗證你可以使用:

moment('13/12/2015',['DD/MM/YYYY']).isValid(); 

試試這個方法:

> moment.locale('it') 
'it' 
> var m = moment('13/12/2015', 'L'); 
undefined 
> m.isValid() 
true 
> m.format() 
'2015-12-13T00:00:00-05:00' 
+0

我沒有已知的格式...這取決於我在選擇文化應用程序的開始.... – Simone

+0

Simone:您的「已知格式」最有可能是'l','ll','lll'或'llll',或者是大寫變體。 (選一個) – Arafangion