0

我在处理日期时遇到了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());

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

4

1 回答 1

1

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

于 2013-04-02T17:27:26.563 回答