2013-07-25 17 views
7

私は日付をフォーマットするために瞬間jsの日付ライブラリを使用していますが、IEで 私は出力にNaNを取得します。それは私が以下のような瞬間のコンストラクタに同じパターンを追加することによって、それを修正することができましたモーメントjsの日付ライブラリ、IEのフォーマットはNaNを与えます

var value = "2015-11"; 

moment(value).format("YYYY-DD-01 00:00")  
> "0NaN-NaN-01 00:00" 

などクロム、FF、同様に、他のブラウザで正常に動作します:

> moment(value,"YYYY-DD-01 00:00").format("YYYY-DD-01 00:00") 
"2015-11-01 00:00" 

が、それは良い習慣ですこのパターンをコンストラクタに追加するには、すべての瞬間オブジェクトの作成のために これはIE上でも動作しますか?

答えて

7

入力フォーマットは、あなたが提供しているものと一致する必要があります

var value = "2015-11"; 
moment(value, "YYYY-MM") 

あなたは出力ごとに異なることをフォーマットしたい場合は、.format方法を使用する場合、それはです。

var value = "2015-11"; 
var m = moment(value, "YYYY-MM") 
var s = m.format("YYYY-MM-DD HH:MM") 

DDが曜日フォーマッタであることに注意してください。しかし、その使用量に基づいて、あなたは月にMMを意味すると思います。

+0

非常に良い答え、ソリューションのおかげで。 IEでのみ起きている理由を教えてください –

+0

入力フォーマットを指定せずに非標準の解析を行うと、実装固有のものであり、ブラウザによって異なるため、常に入力フォーマットを提供する必要があります。 –

+0

私の推論を提供するための@mattに感謝します –

関連する問題