如何使用JavaScript将日期添加到当前日期?JavaScript是否有像.NET的AddDay()那样的内置函数?
当前回答
只是花了很长时间试图弄清楚今年的交易是什么,而不是在下面的主要例子中添加。
如果你只想在你拥有的日期上加上n天,最好就这样做:
myDate.setDate(myDate.getDate()+n);
或冗长的版本
var theDate = new Date(2013, 11, 15);
var myNewDate = new Date(theDate);
myNewDate.setDate(myNewDate.getDate() + 30);
console.log(myNewDate);
今天/明天的事情令人困惑。通过将当前日期设置为新的日期变量,您将搞乱年份值。如果你从最初的日期开始工作,你就不会。
其他回答
您可以使用以下选项创建一个:-
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视为一个可变的类而不是一个不可变的结构是合适的。
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
小心,因为这可能很棘手。当设置明天时,它仅在当前值与今天的年份和月份匹配时有效。然而,通常将日期设置为“32”这样的数字仍然可以很好地将其移动到下一个月。
就这么简单:
new Date((new Date()).getTime() + (60*60*24*1000));
完成此操作的最简单方法是使用日期fns库。
var addDays = require('date-fns/add_days')
addDays(date, amount)
此链接中提供了文档。您也可以使用moment.js完成此操作
希望它有帮助!
派对迟到了,但如果你使用jQuery,那么有一个名为Moment的优秀插件:
http://momentjs.com/
var myDateOfNowPlusThreeDays = moment().add(3, "days").toDate();
http://momentjs.com/docs/#/manipulating/
还有很多其他的好东西!
编辑:由于aikeru的评论,jQuery引用被删除