我有以下脚本,第二天返回:
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)。
我的问题是,这可能是在该月的最后一天,因此最终返回 32/4/2014
有没有办法可以获得第二天保证的正确日期?
答案 0 :(得分:115)
您可以使用:
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.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
请参阅fiddle。
答案 1 :(得分:34)
从这里复制粘贴: Incrementing a date in JavaScript
为您提供三种选择:
仅使用JavaScript的Date对象(无库):
var today = new Date(); var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000));
或者,如果您不介意更改日期(而不是创建日期) 一个新的日期):
var dt = new Date(); dt.setTime(dt.getTime() + (24 * 60 * 60 * 1000));
编辑:另请参阅Jigar的回答和David的评论:明天的var = new Date();明天.setDate(tomorrow.getDate()+ 1);
使用MomentJS:
var today = moment(); var tomorrow = moment(today).add(1, 'days');
(请注意,add会修改您调用它的实例,而不是 返回一个新实例,所以today.add(1,' days')今天会修改。 这就是为什么我们从明天开始克隆op = ....)
使用DateJS,但它很长时间没有更新:
var today = new Date(); // Or Date.today() var tomorrow = today.add(1).day();
答案 2 :(得分:1)
使用Date对象保证。例如,如果您尝试创建April 31st
:
new Date(2014,3,31) // Thu May 01 2014 00:00:00
请注意,它已编入零索引,因此1月份为
0
,2月份为1
等。