【问题标题】:How to display user's time zone information nicely in javascript如何在javascript中很好地显示用户的时区信息
【发布时间】:2014-03-04 23:19:32
【问题描述】:

在网页中,使用 Javascript,我想很好地显示用户的本地时区信息。例如,如果来自加利福尼亚(太平洋时间)的用户浏览网页,我想显示如下内容:

Pacific Standard Time

如果长时区名称不可用,那么至少我想在这种情况下显示“PST”。

在 Javascript 中是否有标准的方法来做到这一点?我环顾四周,但找不到令人满意的解决方案。 Date 对象的 toLocaleString 方法很接近,但这不是我想要的。

【问题讨论】:

  • 不幸的是,以下任何从.toString() 提取部分响应的方法都会给您带来不一致的结果,因为在某些浏览器中实现略有不同,尤其是较旧的浏览器。

标签: javascript timezone


【解决方案1】:

这个怎么样?你可以在它周围添加一些条件,但基本是

var now = new Date();
var tz = now.toString().split("GMT")[1];
tz.substr(7,tz.length -8)

var now = new Date(); 
var zone = /\(.*\)/.exec(now.toString())[0];

【讨论】:

    【解决方案2】:

    您可能正在寻找的是一个简单的代码 sn-p。但是,使用好的工具可以极大地帮助处理日期格式,而 Moment.js 在我看来是最好的:http://momentjs.com/

    或者,你可以这样做

    var myDate = new Date(); 
    var timeZone = /\(.*\)/.exec(myDate.toString())[1];
    

    【讨论】:

    • Moment.js 是一个很棒的工具。其实我也看过它的文档,但我找不到我想要的。 @Harvey,您能否更具体地了解 Moment.js?
    • 杰克,它不是完全按照您的要求执行的最佳工具。这就是为什么我用一种简单的方法来打印时区来修改我的答案。它是一种工具,旨在格式化日期、比较日期以及将日期从一个时区转换为另一个时区。
    【解决方案3】:

    我认为您正在寻找类似的东西:

    console.log(new Date().toString());
    

    有关日期对象方法的易于阅读的列表,请参阅:http://www.w3schools.com/jsref/jsref_obj_date.asp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2010-09-21
      • 2019-07-28
      • 1970-01-01
      相关资源
      最近更新 更多