2014-11-20 211 views
0

我试图将UTC时间转换为当地时间,但以下代码无法正常工作。它有什么问题?将UTC转换为当地时间Javascript

var parsedStartDateTime = 
      new Date(moment.unix(parseInt(data['StartDateTime'].substr(6))/1000)); 
var startDateTimeMoment = 
      moment.tz(parsedStartDateTime, tzName); 
var formatted_date = 
      startDateTimeMoment.format("MMM DD YYYY h:mm:ss A"); 
+0

[转换UTC日期时间使用JavaScript本地日期时间]可能重复(http://stackoverflow.com/questions/6525538/convert-utc-date-time-to - 本地日期时间使用JavaScript) – Philibobby 2014-11-20 18:57:04

+0

什么JavaScript库你在那里使用? (对于moment.unix,moment.tz)?和'StartDateTime'的价值是什么? – MatthewMartin 2014-11-20 18:57:05

回答

0

尝试将UTC附加到字符串,然后将其转换为日期,然后使用toString()方法的日期。

例子:

var myDate = new Date('7/1/2014 5:22:55 PM UTC'); 
date.toString(); //this should give you local date and time 

此代码是从here

+0

为什么downvote?至少有人说你为什么低估了? – brso05 2015-03-16 17:50:38

0

这里是我的解决方案:

function convertUTCDateToLocalDate(date) { 
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000); 

var offset = date.getTimezoneOffset()/60; 
var hours = date.getHours(); 

newDate.setHours(hours - offset); 

return newDate; 

}

var date = convertUTCDateToLocalDate(new Date(date_string_you_received)); 
date.toLocaleString().replace(/GMT.*/g,""); 
相关问题