【问题标题】:Javascript date daylight savings issueJavascript日期夏令时问题
【发布时间】:2023-04-05 05:32:01
【问题描述】:

我在处理日期时遇到了 javascript 中的夏令时问题。相关国家是英国。

早些时候,在 3 月 31 日之前,以下代码给出了准确的日期:

var caseClosed = new Date(now.getUTCFullYear(), now.getUTCMonth(), 
now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());

所以,当我用它来区分两个日期时,上面代码检索到的日期和另一个日期(来自根据系统日期时间存储正确日期的旧系统),我得到了一个正确的正值。

但是在那个日期之后,比如说今天,每当我使用上面的代码时,我都会少一个小时;这导致两个日期之间出现负值。

比如说,如果时间是 18:06,我通过上面的代码得到 17:06。所以我尝试使用以下代码,它现在给了我正确的时间:

var caseClosed = new Date(now.getFullYear(), now.getMonth(), 
now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());

任何人都可以解释发生了什么吗?如果不给额外的一小时(60 分钟),即使夏令时关闭,上述代码(不使用 UTC 的东西)是否也能工作?

【问题讨论】:

  • 以上代码正确表明它(在撰写本文时)UTC 时间是 17:26。您需要决定是否要使用 UTC...

标签: javascript dst


【解决方案1】:

嗯,UTC 日期与系统日期不同。虽然系统日期受日光变化的影响,但 UTC 不受...注意,如果您希望使用此值在服务器上存储任何内容,则应使用服务器时间,而不是客户端时间...

【讨论】:

  • 好吧,其实我会解释这个场景。碰巧我们正在使用一个遗留系统,该系统根据系统时间(在任务栏等中可用)存储记录创建日期时间。现在我需要在特定条件下使用 JavaScript 捕获当前日期时间,并计算创建日期时间和当前日期时间之间的差异。那么,你有什么建议呢?
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 2018-08-27
  • 2018-08-19
  • 1970-01-01
相关资源
最近更新 更多