我有格式的日期时间字符串(" 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中获得转换时间。任何帮助将不胜感激。
答案 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);
如果您知道您的字符串将始终采用相同的格式,请仅使用此选项。