繁体   English   中英

在此日期添加天数功能有什么问题?

[英]What's wrong on adding Days at this Date function?

这是我的代码:

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月。

这就是为什么您要比当前日期提前很多的原因。 我不确定为什么会给您1月6 而不是10月10 日的信息 ,但是您可以通过将输入字符串更改为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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM