2011-12-19 2 views
4

date.jsのDate.parseExact()に何か不足していますか? ...期待されるフォーマット文字列{}または配列Date.js parseExact()は、配列として渡されたときに4桁の年を解析しません。

Date.parseExact("10/15/2004", ["M/d/yyyy", "MMMM d, yyyy"]); // The Date of 15-Oct-2004 

I「が含まれている文字列配列を渡すことができるはずであること:APIドキュメントによれば、私はこれを行うことができるはず予想されるフォーマット{配列}の日付文字列。私はこれを行うときしかし、:

var d = Date.parseExact($(this).val(), ["MMddyy", "Mddyyyy", "MM/dd/yy","MM/dd/yyyy"]) 

私は(それはMMDDYYYYおよびMM/DD/YYYY形式に一致する、される)4桁の年を含む日付のヌルを取り戻します。何か不足していますか、これはDate.jsのバグですか?ここで

は、コンテキストのために、コードの完全なブロックである:

$(function() { 
    $('#FCSaleDate').change(function (e) { 
     var d = Date.parseExact($(this).val(), ["MMddyy", "MMddyyyy", "MM/dd/yy","MM/dd/yyyy"]) 
     alert(d.toString("MM/dd/yyyy")); 
    }); 

}); 

答えて

4

それdate.jsは、2桁の年と4桁の年を解析しようとして失敗し、失敗した場合はnullを返している表示されます。これを防止するために

、それは最初の4桁のマスクをしようとしますので、周りのあなたのマスクを切り替える:戻って昼食から来て見つけることはとても素敵な魅力のような

$(function() { 
    $('#FCSaleDate').change(function (e) { 
     var d = Date.parseExact($(this).val(),["MMddyyyy","MMddyy","M/d/yyyy","M/d/yy"]); 
     alert(d.toString("MM/dd/yyyy")); 
    }); 

}); 

http://jsfiddle.net/mblase75/ttEqh/1/

+2

作品...全て私の問題は解決しました!あなたはどこにいましたか? – seanicus

+1

バグ修正の候補としてdate.jsの著者に提出するかもしれません(ダブルチェックして、ドキュメントにまだ言及していないことを確認してください)。次のマスクに移動するのではなく、2桁の年として4桁の年を解析しなかった場合に、コードがnullを返すことは間違いありません。 – Blazemonger

関連する問題