2017-02-07 39 views
1

這裏是我的代碼:這段時間爲什麼日期不正確?

var moment = require("moment"); 

var day = 31; 
var month = 12; 
var year = 2016; 
moment().date(day).month(month - 1).year(year) 

返回的日期是Sat Dec 03 2016 16:23:43 GMT-0700 (MST)

爲什麼要將日期轉換爲03而不是31

+0

「如果您鏈接多個動作來構建日期,則應該從一年開始,然後是一個月,然後是一天等等,否則您可能會收到意想不到的結果」https://momentjs.com/docs/ –

+0

如果您爲12月31日做一個日期並且減去一個月,日期應該是什麼? 11月31日沒有。 – RobG

+0

@RobG' moment()。year(2016).month(11).date(31).month(10)'returns 2016年11月30日。處理良好。 –

回答

1

此行是在多個步驟處理:moment().date(day).month(month - 1).year(year)

第一:moment().date(31)

目前這是2月7日,2017年我們將其更改爲「2017年2月31日」,這回繞到3月3日自2月以來只有28天。

然後月份更改爲12,並在今年至2016年

翻轉過來,步驟。先做一年,然後一個月,然後做日期。

相關問題