Javascript日期夏令时问题

时间:2013-04-02 17:23:14

标签: javascript dst

我在使用日期时遇到了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分钟)也能解决DayLight节省的问题吗?

1 个答案:

答案 0 :(得分:1)

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