JavaScript日期加1

37

如何获取今天的日期并加上1天?

如果可能,请内联?

8个回答

62

这将获得明天的日期:

var a = new Date((new Date()).valueOf() + 1000*3600*24);

1
希望我能得到更多的赞。我相信这是唯一一个在月底仍然有效的方法。其他方法将在每月31日返回“32”。 - Darren
2
好的答案,更简单的方法是:new Date((new Date()).valueOf() + 86400000) 或者可以拆分成 new Date((new Date()).valueOf() + 246060*1000),其中你有 24 小时 * 60 分钟 * 60 秒 * 1000 毫秒。 - MarzSocks

52

您需要使用Date对象的getDate()和setDate()方法,分别获取和设置日期的日值。

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

查看MDN上的日期对象参考文档,了解更多关于操作日期的信息。


9
如果遵循夏令时并且在第二天将时间向前/向后移动,这会导致问题。因此,正确的解决方案是date.setTime(date.getTime() + 86400000); - venkatagiri
3
我之前遇到了一个问题,如果日期是月底的话,它会想要跳过这个月的最后一天。比如说十二月会变成32号。Pablo提供的解决方案有效。 - cbloss793

11

试试这个:

//create the date
var myDate = new Date();

//add a day to the date
myDate.setDate(myDate.getDate() + 1);

这个在月底不会出问题吗?我之前用过类似的代码,在31号时会返回32。 - Darren

5
dt = new Date();
dt.setDate(dt.getDate() + 1);

1
如果你所说的“加一天”是指“加上24小时”,也就是给JavaScript日期对象添加24*60*60*1000毫秒,那么正确的解决方案是:
var d = new Date();
d.setTime(d.getTime() + 86400000);
console.log('24 hours later');
console.log(d);

正如@venkatagiri在早期评论中指出的那样,这实际上会在所有情况下将24小时添加到当前JavaScript日期对象中,而如果涉及夏令时交叉,则d.setDate(d.getDate()+1)不会添加。请参见this JSFiddle以查看2013年夏令时开始(2013年3月10日上午2:00,夏令时地区时间向前移动一小时)的上下文差异。setDate()在这种情况下只会添加23小时,而setTime()会添加24个小时。

0
var d = new Date(); 

var curr_date = d.getDate();

var n =curr_date;

jQuery(".class_name:eq(0)").text(n);

var m =[d.getDate()+1];

jQuery(".class_name:eq(1)").text(m);

2
以下是关于编程的内容,请将其从英文翻译成中文。只返回翻译后的文本:也许稍微解释一下会更好。也许稍微解释一下会更好 - JF it

0

0
将30天添加到日期选择器中并设置日期值。
示例:
$(document).ready(function() {
    var myDate = new Date();

    //add a day to the date
    myDate.setDate(myDate.getDate() + 30);        

    var end_date = new Date(myDate.getFullYear(), myDate.getMonth(), myDate.getDate());

    $('#datepicker').datepicker({
        format: 'dd-mm-yyyy',
        orientation: 'bottom'
    });

    $('#datepicker').datepicker('setDate', end_date);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接