如何使用JavaScript将日期添加到当前日期?JavaScript是否有像.NET的AddDay()那样的内置函数?
当前回答
用javascript扩展原型可能不是一个好主意,尤其是在专业代码库中。
您要做的是扩展本机Date类:
类MyCustomDate扩展日期{addDays(天){const date=新的MyCustomDate(this.valueOf());date.setDate(date.getDate()+天);返回日期;}}const today=新的MyCustomDate();const nextWeek=today.addDays(7)console.log(下一周)
这样,如果有一天Javascript实现了一个原生的addDays方法,你就不会破坏任何东西。
其他回答
已缩小2.39KB。一个文件。https://github.com/rhroyston/clock-js
console.log(clock.wwhat.wayday(clock.now+clock.unit.days))//“星期三”console.log(clock.wwhat.wayday(clock.now+(clock.unit.days*2))//“星期四”console.log(clock.wwhat.wayday(clock.now+(clock.unit.days*3))//“星期五”<script src=“https://raw.githubusercontent.com/rhroyston/clock-js/master/clock.min.js“></script>
您可以使用以下选项创建一个:-
Date.prototype.addDays=函数(天){var date=新日期(this.valueOf());date.setDate(date.getDate()+天);返回日期;}var date=新日期();console.log(date.addDays(5));
这会在必要时自动增加月份。例如:
8/31+1天将变为9/1。
直接使用setDate的问题是它是一个赋值函数,最好避免这种情况。ECMA认为将Date视为一个可变的类而不是一个不可变的结构是合适的。
我总结了小时和天。。。
Date.prototype.addDays = function(days){
days = parseInt(days, 10)
this.setDate(this.getUTCDate() + days);
return this;
}
Date.prototype.addHours = function(hrs){
var hr = this.getUTCHours() + parseInt(hrs , 10);
while(hr > 24){
hr = hr - 24;
this.addDays(1);
}
this.setHours(hr);
return this;
}
派对迟到了,但如果你使用jQuery,那么有一个名为Moment的优秀插件:
http://momentjs.com/
var myDateOfNowPlusThreeDays = moment().add(3, "days").toDate();
http://momentjs.com/docs/#/manipulating/
还有很多其他的好东西!
编辑:由于aikeru的评论,jQuery引用被删除
减去30天使用(24小时=86400000ms)
new Date(+yourDate - 30 *86400000)
var yourDate=新日期();var d=新日期(+yourDate-30*86400000)控制台日志(d)