这是我的代码:
var dat = new Date("24/03/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)
但它打印Tue Jan 06 2015 00:00:00 GMT+0100
?
日期错误:应该是31/03/2013(我想以这种格式打印)。
答案 0 :(得分:3)
我的浏览器(Chrome)会打印“无效日期”,但显然你的浏览器会以mm / dd / yyyy格式而不是dd / mm / yyyy来解释初始化日期。因此它认为这是2013年第24个月的第3天,即2015年1月3日。
如果你加上7天,我不知道为什么它会在1月6日打印出来。
最安全的方法是明确提供数字:
var dat = new Date( 2013, 2, 24 );
答案 1 :(得分:1)
更改日期格式,将日期放在月份之后:
var dat = new Date("03/24/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)
对我来说,这会返回:
Sun Mar 31 2013 00:00:00 GMT+0000 (GMT Standard Time)
答案 2 :(得分:1)
您必须先提供月份编号。然后你会得到正确的答案
试试此代码
var dat = new Date("03/24/2013");
dat.setDate(dat.getDate() + 7);
var curr_date = dat.getDate();
var curr_month = dat.getMonth() + 1; //Months are zero based
var curr_year = dat.getFullYear();
console.log(curr_date + "/" + curr_month + "/" + curr_year);
答案 3 :(得分:0)
您应该在添加七个之前打印出的日期。我怀疑它将被设定为2013年第24个月的3 rd 日,相当于接近2015年1月的某个地方。
这就是为什么你要从当前的日期前进一个日期。为什么它给你1月份的6 th 而不是10 th ,我不确定,但你可以通过改变输入字符串到美国来修复它。格式为mm/dd/yyyy
,或使用a more explicit constructor that's not subject to misinterpretation:
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
答案 4 :(得分:0)
试试这个!!!
var aDate = new Date(2013,3,24);
aDate.setDate(aDate.getDate() + 7);
var dateString = aDate.getDate() + "-" + aDate.getMonth() + "-" + aDate.getFullYear();
alert(dateString);