小编典典

在JavaScript中增加日期

javascript

我需要在JavaScript中将日期值增加一天。

例如,我的日期值为2019-09-11,我需要将第二天的日期存储在JavaScript变量中。

如何将日期增加一天?


阅读 960

收藏
2020-04-25

共1个答案

小编典典

为您提供三种选择:

1.仅使用JavaScript的Date对象(不使用库):

我以前对#1的回答是错误的(它增加了24小时,未能考虑到夏时制的过渡;CleverHuman指出,东部时区到2010年11月7日将失败)。相反,Jigar的答案是没有库即可执行此操作的正确方法:

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);

甚至在一个月(或一年)的最后一天都可以使用,因为JavaScript日期对象对过渡很聪明:

var lastDayOf2015 = new Date(2015, 11, 31);

snippet.log("Last day of 2015: " + lastDayOf2015.toISOString());

var nextDay = new Date(+lastDayOf2015);

var dateValue = nextDay.getDate() + 1;

snippet.log("Setting the 'date' part to " + dateValue);

nextDay.setDate(dateValue);

snippet.log("Resulting date: " + nextDay.toISOString());


<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->

<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

(此答案当前已被接受,因此无法删除。在被接受之前,我向OP建议他们接受Jigar的答案,但也许他们在清单上的#2或#3接受了这个答案。)

2.使用MomentJS:

var today = moment();
var tomorrow = moment(today).add(1, 'days');

(当心add修改了您调用它的实例,而不是返回一个新实例,所以today.add(1, 'days')modify
也是如此today。这就是我们从克隆op on开始的原因var tomorrow = ...。)

3.使用DateJS,但是很长一段时间没有更新:

var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();
2020-04-25