在 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);
仅当您知道您的字符串将始终采用相同格式时才使用此选项。
我有一个格式为 ("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);
仅当您知道您的字符串将始终采用相同格式时才使用此选项。