在javascript中将UTC时间转换为IE中的本地时区

时间:2015-10-07 19:14:23

标签: javascript internet-explorer-10 localtime

我有格式的日期时间字符串(" 2015-10-07 15:20:00 UTC")我想将其转换为客户端的本地时区。我正在使用以下陈述:

var UTC_Time = new Date ("2015-10-07 15:20:00 UTC");

var localTime = UTC_Time.toString();

在谷歌浏览器中它工作正常并返回转换时间为2015-10-07 20:20:00太平洋标准时间这很好。但在Internet Explorer(我关注的是IE10)中它返回相同的UTC日期,即2015-10-07 15:20:00。我怎样才能在IE中获得转换时间。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在javascript中显示日期时,会将其转换为客户端时间。由于您在日期字符串中指定UTC,因此它将假定它是UTC日期。有几种方法可以解决这个问题。

如果您只需要一个字符串,则可以localTime = UTC_Time.toUTCString()

如果需要js Date对象,可以通过获取上一个对象的值来创建新的日期对象。

new Date(UTC_Time.getUTCFullYear(), UTC_Time.getUTCMonth(), 
    UTC_Time.getUTCDate(), UTC_Time.getUTCHours(), UTC_Time.getUTCMinutes(), 
    UTC_Time.getUTCSeconds(), UTC_Time.getUTCMilliseconds());

或者您可以简单地替换字符串的UTC部分。

var dtStr = "2015-10-07 15:20:00 UTC";
dtStr = dtStr.replace(" UTC", "");
var localTime = new Date(dtStr);

如果您知道您的字符串将始终采用相同的格式,请仅使用此选项。