【问题标题】:Getting the Time Zone (just the timezone) using angular使用角度获取时区(只是时区)
【发布时间】:2016-08-05 20:31:30
【问题描述】:

我不确定这是否可行,但我想使用 Angular 获取 PC 的时区。我只需要时区,因为我需要将其格式化为 ('+H:MM')。

我知道 Angular 只以一种方式格式化它('+HHMM'),所以我想存储这个时区并放入一个字符串,以便以后可以操作。

如果可能的话,我也不想使用插件和/或库。

【问题讨论】:

    标签: javascript angularjs date timezone


    【解决方案1】:

    我建议你使用 Momentjs:

    http://momentjs.com

    Momentjs Formats

    var from = new Date();
    var date = moment(from).format('Z'); //ZZ
    
    alert(date);
    

    Fiddle

    或者你可以对日期执行正则表达式:

    var from = new Date();
    var res = from.toString().match(/[\+,\-](\d{4})\s/g);
    alert(res);
    

    Fiddle

    但我不确定它是否非常健壮。

    希望对你有帮助。

    【讨论】:

    • 我认为纯 javascript 将不得不这样做,因为我不想使用momentsjs
    • 这没有得到时区。这将获得与 UTC 的偏移量。没有办法从浏览器中获取用户的时区,即使是时刻。您可以做的最好的事情是使用猜测用户时区的库。 Jstz 和 moment timezone 都实现了这种功能。我建议阅读标签 wiki 了解更多信息。
    【解决方案2】:

    这个怎么样?

    let timeZone;
    if (typeof Intl === 'object' && typeof Intl.DateTimeFormat === 'function') {
      timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
      console.log({ timeZone });
    }
    

    【讨论】:

    • 这个答案是我想要的 -> 输出:Europe/Berlin(如果你删除了 console.log 中的花括号)
    【解决方案3】:

    如果您需要上网时间,请使用此网站

    http://www.timeapi.org/utc/now.json

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2023-04-01
      • 1970-01-01
      • 2013-09-19
      • 2016-09-29
      • 2014-01-04
      相关资源
      最近更新 更多