这是我的代码:
var dat = new Date("24/03/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)
但它打印Tue Jan 06 2015 00:00:00 GMT+0100
?
日期错误:应该是 2013 年 3 月 31 日(我想以这种格式打印)。
这是我的代码:
var dat = new Date("24/03/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)
但它打印Tue Jan 06 2015 00:00:00 GMT+0100
?
日期错误:应该是 2013 年 3 月 31 日(我想以这种格式打印)。
我的浏览器(Chrome)打印“无效日期”,但显然您的以 mm/dd/yyyy 格式而不是 dd/mm/yyyy 格式解释初始化日期。因此它认为它是 2013 年 24 月的第 3 天,即 2015 年 1 月 3 日。
我不确定如果您添加 7 天,它为什么会在 1 月 6 日打印出来。
最安全的方法是明确给出数字:
var dat = new Date( 2013, 2, 24 );
将日期格式更改为月份之后的日期:
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)
您应该首先给出月份编号。然后你会得到正确的答案
试试这个代码
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);
您应该在添加七个之前打印出您的日期。我怀疑它被设置为 2013 年第 24 个月的第 3天,这相当于接近 2015 年 1 月的某个地方。
这就是为什么您的日期比当前日期提前了很多。为什么它给你 6 th of January 而不是 10 th,我不确定,但你可以通过将输入字符串更改为美国格式mm/dd/yyyy
或使用更明确的构造函数来修复它,不会被误解:
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
试试这个!!!
var aDate = new Date(2013,3,24);
aDate.setDate(aDate.getDate() + 7);
var dateString = aDate.getDate() + "-" + aDate.getMonth() + "-" + aDate.getFullYear();
alert(dateString);