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