【发布时间】: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