【问题标题】:Is there a method on Date() object to eliminate daytime saving?Date() 对象上是否有消除夏令时的方法?
【发布时间】:2020-08-20 17:33:54
【问题描述】:

伙计们,我居住在我所在时区为 GMT+1 的国家/地区

但是当我

console.log(日期());

(它应该在您的本地机器上提供即时时间)

Javascript 假设我使用白天保存,即使我的机器没有,所以输出将自动为 GMT+2

我的目标是把握好时间。

我尝试了矩库,但它给出了相同的输出。

子问题:javascript 在哪里获取时间数据?

【问题讨论】:

  • JavaScript 在您的本地时区中呈现时间,因此如果设置不正确,您可能会得到不正确的时间。您的时区决定 DST 是否相关。值得检查您的操作系统的特定设置。
  • 另外,开启/关闭夏令时的方法是设置时区。有夏令时的地方,通常有一个常规时区和一个 DS 时区
  • @tadman 是的,这对我有帮助,我在 GMT+1 时区使用日间节省,(它在我的系统上被关闭)所以我的时钟给了我 GMT+1 时间,当 javascript 仅使用该区域时,他认为它是 GMT+2。谢谢
  • @ControlAltDel 同样感谢

标签: javascript date datetime methods momentjs


【解决方案1】:

当您使用Date() 创建日期对象时,日期的值始终以 UTC 格式存储。

根据您计算机的本地时区,仅打印输出会发生变化。

但是,Date.prototype.toLocaleSting() 方法允许您在任何时区打印日期。这与更改夏令时不同,但应该可以选择所需时间的时区。

function showDates() {
  let now = new Date();
  let local = now.toLocaleString('en-US');
  let seoul = now.toLocaleString('en-US', {
    timeZone: 'Asia/Seoul'
  });
  let moscow = now.toLocaleString('en-US', {
    timeZone: 'Europe/Moscow'
  });
  result.value = `Local Time: ${local}\n`;
  result.value += `Seoul Time: ${seoul}\n`

  result.value += `Moscow Time: ${moscow}`

}

const result = document.getElementById('result');
showDates();
textarea {
  width: 20rem;
  height: 4rem;
}
<h4>Show Dates with toLocaleString()</h4>
<textarea id="result"></textarea>

Time zone names.

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 2017-01-23
    • 2017-11-10
    • 2014-08-22
    • 2012-05-26
    • 2018-01-12
    • 2018-08-29
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多