JavaScript,获取第二天的日期

JavaScript,获取第二天的日期,javascript,date,Javascript,Date,我有以下第二天返回的脚本: function today(i) { var today = new Date(); var dd = today.getDate()+1; var mm = today.getMonth()+1; var yyyy = today.getFullYear(); today = dd+'/'+mm+'/'+yyyy; return today;

我有以下第二天返回的脚本:

function today(i)
    {
        var today = new Date();
        var dd = today.getDate()+1;
        var mm = today.getMonth()+1;
        var yyyy = today.getFullYear();

        today = dd+'/'+mm+'/'+yyyy;

        return today;   
    }
通过使用以下命令:

today.getDate()+1;
我得到了一个月的第二天(例如今天将得到16)

我的问题是,这可能是本月的最后一天,因此最终返回到2014年4月32日

有什么方法可以保证第二天的正确日期吗?

您可以使用:

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate()+1);
例如,由于4月有30天,以下代码将在5月1日输出:

var day = new Date('Apr 30, 2000');
console.log(day); // Apr 30 2000

var nextDay = new Date(day);
nextDay.setDate(day.getDate() + 1);
console.log(nextDay); // May 01 2000    

请参阅。

使用日期对象可以保证。例如,如果您试图在4月31日创建

new Date(2014,3,31)        // Thu May 01 2014 00:00:00
请注意,它是零索引的,所以一月是
0
,二月是
1
等等

从此处粘贴的副本:

你有三个选择:

仅使用JavaScript的日期对象(无库):

或者如果您不介意更改日期(而不是创建 新日期):

编辑:另请参见Jigar的回答和David的评论:var明天 =新日期();明天.setDate(明天.getDate()+1)

使用MomentJS:

var today = moment();
var tomorrow = moment(today).add(1, 'days');
(请注意,add会修改您调用它的实例,而不是 返回一个新实例,因此today.add(1,'days')将在今天修改。 这就是为什么我们从var上的克隆操作开始(明天=…)

使用DateJS,但很长时间没有更新:

var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();

选择一个班轮时是否有任何错误,如
新日期(1000*60*60*24++new Date())
?@KrIsHnA可爱的一个班轮。没有错误!我将其用作
新日期(86400000++new Date())
以节省处理器的乘法成本@ToWhomItMayConcern此处前缀的加号
+new Date()
是一元运算符(如果尚未将操作数转换为数字,则尝试将其转换为数字),以防万一:)请将引用标记为一元运算符!将问题作为副本关闭比关闭c&p答案更容易、更好。@Bergi特别是因为答案在复制后发生了变化……这对夏令时不起作用!使用
新日期(2016年10月6日)尝试此选项。
原始答案已更新,如果可以,我会投票关闭此选项。我不知道它是否有助于提高性能,但可以使用
明天.setDate(明天.getDate()+1)简化此选项此方法不会更新月份。因此,如果你要求这个月,它仍然会在四月份返回example@marimaf-此方法确实更新了月份。他的例子有点站不住脚,因为它依赖于它是同一个月,当他作出这个答案(我只是更新,以修复),但该方法的工作。谢谢。。帮了我一个大忙这里有一个更适合我需要的单行程序:
var-tomory=new-Date(new-Date().setDate(new-Date().getDate()+1))请注意,以“0”开头的数字文字是八进制,已被弃用。因此,此代码可能会在严格模式下导致错误。而且,你写的是03而不是04…@tsh-它是零索引的。所以4月份的3是正确的。
var today = moment();
var tomorrow = moment(today).add(1, 'days');
var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();