MomentJS はユーザー入力の解析を目的としていますか?
DDMMYYYY の順序で日付を受け入れ、いくつかのバリエーションを処理することで、簡単なケースに適度に近づきました。
形式を指定するときに無効な日付を特にうまく処理しません-日の値が高すぎる、または年の値を2桁と4桁の間で切り替えるなど。
年解釈の例:
var date1 = moment('30082012', 'DDMMYYYY');
var date2 = moment('30082012', 'DDMMYY'); // Gives wrong year - 2020
var date3 = moment('300812', 'DDMMYYYY'); // Gives wrong year - 1900
var date4 = moment('300812', 'DDMMYY');
無効と思われる日付の例:
var date5 = moment('08302012', 'DDMMYYYY'); // Gives Jun 08 2014
var date6 = moment('08302012', 'DDMMYY'); // Gives Jun 08 2022
var date7 = moment('083012', 'DDMMYYYY'); // Gives Jun 08 1902
var date8 = moment('083012', 'DDMMYY'); // Jun 08 2014
これらの例を使用して JS Fiddle を作成しました: http://jsfiddle.net/cHRfg/2/
ユーザー入力のより広い配列を受け入れ、無効な日付を拒否する方法はありますか? それとも、ライブラリはこれを意図していませんか?