我遇到了 JavaScript Date 对象的问题,当我将其设置为 UTC 午夜时,它显示的日期不正确。这是我的代码:
function updateDates(startDate) {
var utcStartDate = startDate + 'T00:00:00Z';
var currentDate = new Date(utcStartDate);
console.log(startDate);
console.log(currentDate);
// Additional code to update dates in the UI
}
这是控制台:
2024-02-26
list:4600 Sun Feb 25 2024 16:00:00 GMT-0800 (Pacific Standard Time)
我希望 currentDate 代表 UTC 时区午夜的 startDate 指定的日期。但是,当我记录 currentDate 时,它显示的日期比预期早一天,并且时间与午夜不匹配。
例如,如果 startDate 为“2024-02-26”,我预计 currentDate 为 2024 年 2 月 26 日,UTC 午夜。相反,我得到的是 2024 年 2 月 25 日 16:00:00 GMT-0800(太平洋标准时间)。
我尝试将时区偏移设置为 UTC(“Z”),但似乎无法解决问题。值得注意的是,无论环境的本地时区设置如何,都会出现这种差异。
如果您能深入了解 Date 对象为何如此行为以及如何确保在不同环境中获得一致的结果,我将不胜感激。谢谢!
只需删除最后的“Z”即可:
function updateDates(startDate) {
var utcStartDate = startDate + 'T00:00:00';
var currentDate = new Date(utcStartDate)
console.log(startDate);
console.log(currentDate.toString());
// Additional code to update dates in the UI
}
updateDates('2024-04-26');