【问题标题】:How to determine if a day comes in PST or PDT in javascript [duplicate]如何在javascript中确定一天是PST还是PDT [重复]
【发布时间】:2014-02-14 00:30:04
【问题描述】:

我在节点 js 中创建一个日期,我的服务器在 IST 中,我想确定日期是 PDT 还是 PST(即夏令时是打开还是关闭)。如果我的服务器处于 PST/PDT 时间,它将自动决定。有什么方法可以确定吗?

【问题讨论】:

  • 不适用于未来的日期。规则可以改变。
  • 过去的日期怎么样?当我创建新日期(“dateString”)时,如果我的系统时间在 PT 中,它可以决定 PST 或 PDT。我想从 IST 系统时间开始做同样的事情。
  • dup 帖子中的答案是一种方式。另一个是使用moment.js中的isDST函数

标签: javascript node.js date


【解决方案1】:

使用...Date() 创建日期后,您可以使用...getTimezoneOffset() 检索客户端的时区偏移量。您无法判断客户是否在 DST,但您拥有 GMT/UTC 的绝对数量。或者,您可以进一步检索 UTC 时间戳的时间并将其转换为服务器上所需的任何时间。

【讨论】:

  • 我会得到一个来自 PT 的日期字符串“10/23/2014 00:00:00”。我发送给可能在任何时区的客户,但我想确定 PT 的那一天是否是夏令时。
  • 以毫秒为单位转换为 UTC 时间戳,将其发送到客户端并从毫秒而不是格式化字符串创建日期。无论客户所在的时区有或没有 DST,日期都是正确的,因为它是从 UTC 设置的:ndate = new Date(); ndate.setTime(UTCinMillisFromServer);
  • 如果本地机器在不同的时区(不是 PST 或 PDT)怎么办?
  • 其实这根本不重要:提交UTC,客户端将在他的TZ中进行转换,无论这是哪个,是否有DST等。
猜你喜欢
  • 2013-02-09
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 2019-11-07
  • 2017-02-19
相关资源
最近更新 更多