Javascript解析我所在时区的全天日期YYYY-MM-DD



假设我为圣诞节创建了一个全天活动。我希望这个活动是12月25日,无论你在哪个时区;2023-12-25";在服务器上。

当我在浏览器中执行new Date("2023-12-25")时,它被解释为UTC日期,这不是我想要的,例如,如果我在纽约,我执行

new Date("2023-12-25") // Sun Dec 24 2023 19:00:00 GMT-0500 (Eastern Standard Time)

这意味着当我去格式化全天活动时,它将格式化为12月24日,这不是我想要的。

期望行为:

// If in New York
parseAllDayDate("2023-12-25") // Sun Dec 25 2023 00:00:00 GMT-0500 (Eastern Standard Time)
// If in London
parseAllDayDate("2023-12-25") // Mon Dec 25 2023 00:00:00 GMT+0000 (Greenwich Mean Time)

另外,请不要推荐dayjs或momentjs,我只想用JS Date来做这件事。

你可以试试这个

parseAllDayDate(dateString) {
let dateStringSplit = dateString.split('-');
let date = new Date();
date.setUTCDate(dateStringSplit[2]);
date.setUTCMonth(dateStringSplit[1]);
date.setUTCFullYear(dateStringSplit[0]);
return date;
}

相关内容

  • 没有找到相关文章

最新更新