看起来是一个简单的问题,但是 JS 中所有时区的来龙去脉都让我头疼。
基本上,如果我有一个如下所示的日期:
2018-04-06
我希望能够获得第二天的日期:
2018-04-07
我在 SO 上找到了以下代码片段来执行此操作(有点):
var date = new Date('2018-04-06');
date.setDate(date + 1);
问题是我正在使用调整后的时区返回日期,并且因为我位于美国东部时间时区,所以它给我的日期减去了五个小时,这实际上是我开始的同一天。
我已经浏览了无数的 SO 帖子,试图找到这个看似简单问题的答案,但对于任何给定的日期,无论用户位于哪个时区,我如何获得 YYYY-MM 中的第二天的日期 - DD格式?谢谢。
最佳答案
格式为 YYYY-MM-DD 的字符串被解析为 UTC,因此在本例中,请以 UTC 执行所有操作(请参阅 Why does Date.parse give incorrect results? 和 How can I add 1 day to current date? )。
toISOString方法将返回所需格式的字符串,只需 trim 多余的时间部分,例如
let s = '2018-04-06';
let d = new Date(s);
d.setUTCDate(d.getUTCDate() + 1);
console.log(d.toISOString().substr(0,10));
关于javascript - 如何获取 JS 中 YYYY-MM-DD 格式的第二天日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60289487/