2012-03-27 105 views
4

我想转换一个时间戳正在返回从JavaScript显示在用户本地时区的JavaScript中的JSON资源。下面我试图调整用户偏移量。JavaScript的UTC时间戳到本地时区

例UTC输出日期: 星期二2012年3月27日2时29分15秒GMT-0400(EDT)

代码

var date = new Date(data.date_created); //Data.date_created coming from json payload 
var offset = date.getTimezoneOffset() //Get offset 
var new_date = new Date(date offset); //Add offset to userdate 

我正在与适当的方法努力实现这个。任何人都可以将我指向正确的方向吗?

回答

5

我可能失去了一些东西,但

var date = new Date(data.date_created); 

做什么,我想你想要的。

>>> d=new Date('Tue Mar 27 2012 02:29:15 GMT-0800') 
Date {Tue Mar 27 2012 06:29:15 GMT-0400 (EDT)} 
>>> d.toLocaleString() 
"Tue Mar 27 06:29:15 2012" 
>>> d=new Date('Tue Mar 27 2012 02:29:15 GMT+0300') 
Date {Mon Mar 26 2012 19:29:15 GMT-0400 (EDT)} 
>>> d.toLocaleString() 
"Mon Mar 26 19:29:15 2012" 

请注意如何将GMT偏移从-8更改为+3将结果时间更改为11小时。

+0

非标准字符串的解析依赖于实现。手动分析字符串要好得多。 – RobG 2014-02-06 00:27:56