Javascript 使用getDate+设置日期;n今天返回';s日期+;N
我希望d2是d1+14天,而不是今天的日期+14天Javascript 使用getDate+设置日期;n今天返回';s日期+;N,javascript,Javascript,我希望d2是d1+14天,而不是今天的日期+14天 <script type="text/javascript"> var d1 = new Date(2014, 7, 1); var d2 = new Date(); d2.setDate(d1.getDate() + 14); // d1 = Fri Aug 01 2014 00:00:00 GMT+0100 (GMT Daylight Time) document.write("d1 = " + d1);
<script type="text/javascript">
var d1 = new Date(2014, 7, 1);
var d2 = new Date();
d2.setDate(d1.getDate() + 14);
// d1 = Fri Aug 01 2014 00:00:00 GMT+0100 (GMT Daylight Time)
document.write("d1 = " + d1);
document.write("<br></br>")
// today's date is 16-04-2014
// d2 = Tue Apr 15 2014 17:36:03 GMT+0100 (GMT Daylight Time)
document.write("d2 = " + d2);
</script>
风险值d1=新日期(2014年7月1日);
var d2=新日期();
d2.设置日期(d1.getDate()+14);
//d1=2014年8月1日星期五00:00:00 GMT+0100(GMT昼间)
文件。写入(“d1=”+d1);
文档。写(“
”)
//今天的日期是2014年4月16日
//d2=2014年4月15日星期二17:36:03 GMT+0100(GMT昼间)
文件。写入(“d2=”+d2);
如何使d2=d1+14天?您为d2设定了一个新日期(今天),但只更改了日期,这应该可以:
var d1 = new Date(2014, 7, 1);
var d2 = new Date(2014, 7, d1.getDate()+14);
setDate
设置现有实例的月份,这有点令人惊讶。由于您已使用今天初始化了d2
,因此只需更改该日期的月份,而不涉及d1
的任何其他方面
您可能想要:
var d1 = new Date(2014, 7, 1); // A specific date
var d2 = new Date(d1); // Clone that date
d2.setDate(d1.getDate() + 14); // Move forward 14 days
这就给了我们8月1日的d1
,8月15日的d2
另一个选择是:
var d1 = new Date(2014, 7, 1);
var d2 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate() + 14);
顺便说一句,即使你已经过了月底,这两种方法仍然有效
第二个选项的完整示例:
日期加14天
身体{
字体系列:无衬线;
}
(功能(){
变量d1,d2;
显示(“从8月1日开始:”)
d1=新日期(2014年7月1日);
d2=新日期(d1.getFullYear()、d1.getMonth()、d1.getDate()+14);
显示(“d1=”+d1);
显示(“d1=”+d2);
document.body.appendChild(document.createElement('hr'));
显示(“从8月20日开始:”)
d1=新日期(2014年7月20日);
d2=新日期(d1.getFullYear()、d1.getMonth()、d1.getDate()+14);
显示(“d1=”+d1);
显示(“d1=”+d2);
功能显示(msg){
var p=document.createElement('p');
p、 innerHTML=字符串(msg);
文件.正文.附件(p);
}
})();
仅将getTime()函数放在d2Date()函数中
选中此项
JavaScript
d1是8月的日期,d2是今天。您将d2设置为今天+14天。正确的结果如下:
var d1 = new Date(2014, 7, 1);
var d2 = new Date(d1.setDate(d1.getDate() + 12));
可能是d2.setDay(d1.getDay()+14)@user3417400 getDay return
d2=8月19日星期二00:00:00 UTC+2014年5月30日。让我检查一下规范。编辑:是的,Date
构造函数的单参数版本所做的第一件事就是对传入的内容调用ToPrimitive
ToPrimitive
onDate
instances为我们提供数值。不错!
var d1 = new Date(2014, 7, 1);
var d2 = new Date(d1.getTime());
d2.setDate(d1.getDate() + 14);
// d1 = Fri Aug 01 2014 00:00:00 GMT+0100 (GMT Daylight Time)
document.write("d1 = " + d1);
document.write("<br></br>")
// today's date is 16-04-2014
// d2 = Tue Apr 15 2014 17:36:03 GMT+0100 (GMT Daylight Time)
document.write("d2 = " + d2);
d1 = Fri Aug 1 00:00:00 UTC+0530 2014
d2 = Fri Aug 15 00:00:00 UTC+0530 2014
var d1 = new Date(2014, 7, 1);
var d2 = new Date(d1.setDate(d1.getDate() + 12));