2017-03-09 110 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

我更新我的问题,看看它,并告诉我它是否适合你。 –