【问题标题】:Convert UTC time to local time zone in IE in javascript在javascript中将UTC时间转换为IE中的本地时区
【发布时间】:2016-01-05 04:17:58
【问题描述】:

我有一个格式为(“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 中它可以正常工作,并将转换后的时间返回为 2015-10-07 20:20:00 PST,这很好。但在 Internet Explorer(我关心 IE10)中,它返回相同的 UTC 日期,即 2015-10-07 15:20:00。如何在 IE 中获取转换后的时间。任何帮助将不胜感激。

【问题讨论】:

  • 如果你正在做大量的日期操作,你可能想看看momentjs
  • 日期操作不多,主要是根据客户端本地时区进行时间转换。无论如何,momentjs 是一个很好的建议,但我无法使用momentjs 获取客户本地时区的标准名称。

标签: javascript internet-explorer-10 localtime


【解决方案1】:

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

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

如果你需要一个 js 的 Date 对象,你可以通过从前一个对象中获取值来创建一个新的 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);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 2011-03-01
    • 1970-01-01
    • 2012-11-17
    • 2020-02-08
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多