【问题标题】:How to extract GMT and timezone from a date string?如何从日期字符串中提取 GMT 和时区?
【发布时间】:2021-03-12 14:13:13
【问题描述】:

var d = new Date();
console.log(d);

这会导致字符串为“2020 年 11 月 30 日星期一 11:16:33 GMT-0500(东部标准时间)”。我怎样才能只得到GMT-0500 (Eastern Standard Time)。有没有办法从日期对象中提取这些值。

【问题讨论】:

    标签: javascript regex date


    【解决方案1】:

    getTimezoneOffset() 方法 https://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp

    var d = new Date();
    console.log(d.getTimezoneOffset());

    【讨论】:

      【解决方案2】:

      例如使用正则表达式。

      var str = 'Mon Nov 30 2020 11:16:33 GMT-0500 (Eastern Standard Time)';
      var timezone = /(GMT.*\))/.exec(str);
      alert(timezone[1]); // GMT-0500 (Eastern Standard Time)
      

      或者使用substr(你知道GTM之前子串的长度)

      var str = 'Mon Nov 30 2020 11:16:33 GMT-0500 (Eastern Standard Time)';
      alert (str.substr(25)); // GMT-0500 (Eastern Standard Time)
      

      【讨论】:

      • 谢谢。但是,为什么时区会作为具有重复值的数组返回。总是使用时区[1] 来获取结果是否安全。
      • @amar:当然,我有[1]。在[0] 中找到所有匹配项,而不是在[1][2] 等中找到单个匹配项。如果您只有这个短字符串(并且它不是记录器文本中的子字符串),substr 会更快。
      【解决方案3】:

      简单的步骤 -

      1. 获取日期字符串
      2. 在日期字符串中搜索“GMT”的索引
      3. 获取从“GMT”开始直到结束的子字符串

      下面是一个sn-p供你参考-

      var d = new Date().toString();
      var finalD = (d.substring(d.search("GMT"), d.length));
      console.log(finalD);

      【讨论】:

        猜你喜欢
        • 2020-04-07
        • 2020-12-15
        • 2023-03-18
        • 2012-04-17
        • 1970-01-01
        • 2021-08-14
        • 2020-08-14
        • 1970-01-01
        • 2016-05-13
        相关资源
        最近更新 更多