繁体   English   中英

为什么我的JavaScript Date对象出现此错误?

[英]Why am I getting this error for JavaScript Date object?

我用JS编写了以下代码

 var d = new Date(2019, 9, 14); var currentTime = d.getTime(); var daysToAdd = 3; var secondsInDay = 86400; var d = new Date(currentTime + daysToAdd*secondsInDay); var year = d.getFullYear(); var month = ("0" + (d.getMonth())).slice(-2); var day = ("0" + d.getDate()).slice(-2); console.log('result in YMD is: ' + year + '-' + month + '-' + day); 

结果输出为YMD为:2019-09-14

我在这里做错了什么? 如何在YMD中将其更改为输出结果是:2019-09-17 ,我本来打算这样做

发生这种情况是因为在此代码上

new Date(currentTime + daysToAdd*secondsInDay);

secondsInDay以秒表示,currentTime以ms表示。 如果您将secondsInDay乘以1000(以毫秒为单位的等效值),则将获得所需的日期。

代替

var d = new Date(currentTime + daysToAdd*secondsInDay);

您可以使用

d.setDate(new Date().getDate()+3);

您的问题是date对象的构造函数使用MILISECONDS来计算日期,而您正在使用SECONDS加上那三天。 而不是86400(秒),您需要使用值86400000(毫秒)。

再见!

您可以将天数直接添加到d.getDate()

 var d = new Date(2019, 9, 14); var daysToAdd = 3; var new_day = d.getDate() + daysToAdd; var new_d = new Date(d.getFullYear(), d. getMonth(), new_day); alert('result in YMD is: ' + new_d.getFullYear() + '-' + new_d. getMonth() + '-' + new_day); 

暂无
暂无

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

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