2015-08-27 74 views
3

如何解析简单的日期字符串并让JavaScript知道它实际上是UTC日期?目前,如果我做new Date('2015-08-27')它将其转换为我的时区。JavaScript - 解析UTC日期

+0

我强烈建议使用[库](http://www.momentjs.com)对于 –

+1

许多不同的选择:http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc – Marc

+0

我想远离天秤座里斯。 –

回答

1

这是我会做的。

var current = new Date(); 
var utcDate = new Date(current.getTime() + current.getTimezoneOffset() * 60000); 
4

你可以追加 'T00:00:00.000Z',使时区特定的(Z表示UTC)

new Date('2015-08-27' + 'T00:00:00.000Z') 

注意,新的日期( '2015年8月27日')在ES5(UTC)与ES6(本地)中的处理方式不同,因此,如果您打算对其进行硬编码(即,不这样做),则无法期望它的任何修正始终如一。


此外,请注意您的console.log可能会显示您他的本地时间对应于表达式求值的UTC时间(如果您期待UTC结束时表达式评估为UTC时间并且您的本地时区结束时评估为那些结果到当地时间)。例如

new Date('2015-08-27T00:00:00.000Z') 

可以显示

Thu Aug 27 2015 1:00:00 GMT+100 

这是相同作为

Thu Aug 27 2015 00:00:00 UTC