[英]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.