此Meteor客户端方法尝试返回Thu Mar 09 2017 00:00:00 GMT+1100 (AEDT)
,但它返回Thu Mar 09 2017 11:00:00 GMT+1100 (AEDT)
怎么修好? THX
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 :(得分: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)
看起来时区是通过小时参数,这真的很奇怪。也许我错过了什么。
您可以详细了解此功能的规范here。
我建议使用Moment.js,这样可以很容易地处理js中的日期,如下所示:
function dateToISO (date) {
return moment(date).utc().format();
}