1

这是我的代码:

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 日(我想以这种格式打印)。

4

5 回答 5

3

我的浏览器(Chrome)打印“无效日期”,但显然您的以 mm/dd/yyyy 格式而不是 dd/mm/yyyy 格式解释初始化日期。因此它认为它是 2013 年 24 月的第 3 天,即 2015 年 1 月 3 日。

我不确定如果您添加 7 天,它为什么会在 1 月 6 日打印出来。

最安全的方法是明确给出数字:

var dat = new Date( 2013, 2, 24 );
于 2013-03-19T09:38:58.403 回答
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) 
于 2013-03-19T09:38:00.140 回答
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);
于 2013-03-19T09:49:32.400 回答
0

您应该在添加七个之前打印出您的日期。我怀疑它被设置为 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);
于 2013-03-19T09:33:25.590 回答
0

试试这个!!!

var aDate = new Date(2013,3,24);
        aDate.setDate(aDate.getDate() + 7); 
        var dateString = aDate.getDate() + "-" + aDate.getMonth() + "-" + aDate.getFullYear(); 
        alert(dateString); 
于 2013-03-19T09:44:31.740 回答