2017-03-09 69 views
1

此流星客戶端方法試圖返回Thu Mar 09 2017 00:00:00 GMT+1100 (AEDT),但它代之以返回Thu Mar 09 2017 11:00:00 GMT+1100 (AEDT)
如何解決? THXDate.UTC未能正確顯示

dateToISO: (date) => { // date format in YYYY-MM-DD like "2017-03-09" 
     const dArr = date.split('-'); 
     return new Date(Date.UTC(parseInt(dArr[0]), parseInt(dArr[1]) - 1, parseInt(dArr[2]), 0, 0, 0, 0)); 
    } 

回答

0

嗯,我嘗試重現它,實際上好像在Date.UTC功能的錯誤。

我試圖做的事:

console.log("Unmanipulate: " + new Date(Date.UTC(97, 4, 13, 0, 0))); 
console.log("Manipulate: " + new Date(Date.UTC(97, 4, 13, -3, 0))); 

它會返回:

Unmanipulate: Tue May 13 1997 03:00:00 GMT+0300 (IDT) 
Manipulate: Tue May 13 1997 00:00:00 GMT+0300 (IDT) 

模樣時區傳遞到小時PARAMS,這實在是不可思議。也許我錯過了一些東西。

您可以閱讀更多關於此功能here的規格。

我會建議使用Moment.js,這使得它很容易應對JS日期,就像這樣:

function dateToISO (date) { 
    return moment(date).utc().format(); 
} 
+0

我已經安裝了Moment.js,你可以給使用它的答案嗎? thx –

+0

我更新我的問題,看看它,並告訴我它是否適合你。 –