为什么javascript落后一小时?

时间:2012-10-02 16:30:26

标签: javascript

您好我正在尝试创建一个unix时间戳来表示当天的最新时间(23:59:59),如下所示:

current_date = new Date();
end = new Date(current_date.getFullYear(), current_date.getMonth(), current_date.getDate(),23,59,59);
end = end.getTime() / 1000;

当我提醒unix时间戳并将其转换回日期时间虽然它落后一小时并代表22:59:59而不是23:59:59。

如果我想要晚上11点,我必须将24传递给小时参数的日期函数而不是23,这是对的吗?

我位于英格兰所以我的时间应该是格林尼治标准时间

1 个答案:

答案 0 :(得分:5)

new Date()将在您的时区中创建日期,而时间戳则以UTC为单位。您似乎处于BST(GMT + 1),因此出现了一个错误。

相反,请创建日期,然后使用setUTCHours(23)setUTCMinutes(59)setUTCSeconds(59)来获取正确的时间戳。