javascript - 如何获取 JS 中 YYYY-MM-DD 格式的第二天日期?

标签 javascript date timezone timezone-offset

看起来是一个简单的问题,但是 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/

相关文章:

java - 如何在 hibernate 中使用数据库系统日期

python时间模块: daylight savings

sql - 带时区的 Postgres 时间戳转换

android - 无法从本地日期转换为伦敦日期对象

javascript - Stripe + Parse - 无法弄清楚 Javascript promise

javascript - 单独切换具有相同类的单个 div 的类

date - 在周 View 中更改日期标题的格式

javascript - 谷歌应用程序脚本中的减去天数将不会反射(reflect)当年的正确更改

javascript - Redux 商店帮助 : Students and Schools

javascript - 为什么这个模板助手会产生错误但仍然有效?