4

嗨,我正在尝试创建一个 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,对吗?

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

4

1 回答 1

5

new Date()将在您的时区创建日期,而时间戳采用 UTC。您似乎处于 BST (GMT+1) 中,因此出现非一错误。

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

于 2012-10-02T16:34:09.123 回答