2017-01-06 11 views
0

私はmomentjsと一緒に働いていますが、私は正しいオブジェクトを受け取りますが、私はそれを保存しようとすると1ヶ月先に節約します。 12月 '私は、13日を保存しようとしているので、明らかに'無効な日付 'というエラーがあります。それは存在しません。Momentjs節約月先

私は、同じ方法で保存しようとするのと同じ方法

Object { day: "12", month: "01", year: "2017", formatted: "12-01-2017", momentObj: Object } 

受信したオブジェクト私は保存するために使用するもの

Object { uid_date: "killerengel_12-02-2017", name: "task1" date: "12-02-2017"} 

let chosenDate = moment(task.date).utc().format('DD-MM-YYYY'); //this gives me a month ahead 

Object { day: "30", month: "12", year: "2017", formatted: "30-12-2017", momentObj: Object } 

Object { uid_date: "killerengel_Invalid date", name: "task2", date: "Invalid date" } 
+2

ないmomentjsはネイティブJavaScriptを一致しますが、JSの時刻/日付を行う悪名高い欠陥が他のすべてが – deweyredman

+0

'タスクが何であるのに基づくものですしながら、ベースヶ月がゼロであるということであれば確認してください。日付?あなたはmomentJSのローカリゼーション設定を使用していますか? – haxxxton

+0

@deweyredman 私は愚かな気がします、私はフォーマットを使用し、それは働いたが、あなたはそれがゼロベースだと言ったように、おそらく私は日付の文字列とMomentJSを使用して計算をしようとすると、前の日付を知っているが、それを行うために文字列を操作できる)。 Btw私はjkuri/ng2-datepickerを使用していますが、これはゼロベースではありません。私はそのエラーが瞬間だと思ったので、他のエラーを表示しないかどうか尋ねます。 とにかく、この質問を削除する必要がありますか、モデレータがそれを閉じるのを待つ必要がありますか?私は私がここに新しいことを知らない、それは私の最初の質問だった。 –

答えて

3

@deweyredmanは正しいです。 JavaScriptのDate()関数では、1月は0、12月は11です。これは、配列のインデックスが0から始まるという事実に似ています。あなたはMoment.jsが同じように動作すると思いますか?

var jan = new Date().setMonth(0); // NOT 1 for Jan. 
 

 
console.log(new Date(jan)); // returns 2017-01... 
 

 
var dec = new Date().setMonth(11); // NOT 12 for Dec. 
 

 
console.log(new Date(dec)); // returns 2017-12...

+0

あなたは正しいです:http://momentjs.com/docs/#/parsing/object/を参照してください - (配列)と新しい日付(年、月、日付)、月のインデックスは0です。 – user4893106

関連する問題