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

Convert UTC time to local time zone in IE in javascript

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

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

var localTime = UTC_Time.toString();

在 Google Chrome 中工作正常,return 转换时间为 2015-10-07 20:20:00 PST,这很好。但是在 Internet Explorer 中(我关心的是 IE10)它是 returning 相同的 UTC 日期,即 2015-10-07 15:20:00。我怎样才能在 IE 中获得转换后的时间。任何帮助将不胜感激。

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

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

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

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);

仅当您知道您的字符串将始终采用相同格式时才使用此选项。