有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
当前回答
第一个参数是开始日期,第二个参数是您希望增加或减少到该日期的天数
示例(1)-pass-1将日期减少一天
示例(2)-通过1将日期增加一天
const EditDay = (date: Date, num: number): Date => {
return new Date(date.getTime() + num * 24 * 60 * 60 * 1000)
}
其他回答
尝试以下操作:
var d = new Date();
d.setDate(d.getDate()-5);
注意,这将修改日期对象并返回更新日期的时间值。
var d=新日期();document.write('今天是:'+d.toLocaleString());d.setDate(d.getDate()-5);document.write('<br>5天前是:'+d.toLocaleString());
如果您想减去天数并将日期格式化为可读格式,则应考虑创建一个自定义DateHelper对象,其外观如下:
var日期助手={addDays:函数(aDate,numberOfDays){aDate.setDate(aDate.getDate()+天数);//添加天数return aDate;//返回日期},格式:函数格式(日期){返回[(“0”+date.getDate()).slice(-2),//获取日期并用零填充(“0”+(date.getMonth()+1)).slice(-2),//获取月份并用零填充date.getFullYear()//获取全年].ejoin('/');//把碎片粘在一起}}//有了这个助手,您现在只需使用一行可读代码即可:// ---------------------------------------------------------------------// 1. 获取当前日期// 2. 减去5天// 3. 格式化它// 4. 输出它// ---------------------------------------------------------------------document.body.innerHTML=DateHelper.format(DateHelper.addDays(新日期(),-5));
(另见本Fiddle)
要计算比全天更精确的相对时间戳,可以使用Date.getTime()和Date.setTime()来处理表示自1970年1月1日以来的毫秒数的整数。例如,如果你想知道现在是17小时后:
const msSinceEpoch=(new Date()).getTime();constfortyEightHoursLater=新日期(msSinceEpoch+48*60*60*1000).toLocaleString();constfortyEightHoursEarlier=新日期(msSinceEpoch-48*60*60*1000).toLocaleString();const fiveDaysAgo=新日期(msSinceEpoch-120*60*60*1000).toLocaleString();console.log({msSinceEpoch,fortyEightHoursLater,fortyEightHoursEarlier,fiveDaysAgo})
参考
它是这样的:
var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);
我为Date制作了这个原型,这样我就可以传递负值来减去天数,传递正值来添加天数。
if(!Date.prototype.adjustDate){
Date.prototype.adjustDate = function(days){
var date;
days = days || 0;
if(days === 0){
date = new Date( this.getTime() );
} else if(days > 0) {
date = new Date( this.getTime() );
date.setDate(date.getDate() + days);
} else {
date = new Date(
this.getFullYear(),
this.getMonth(),
this.getDate() - Math.abs(days),
this.getHours(),
this.getMinutes(),
this.getSeconds(),
this.getMilliseconds()
);
}
this.setTime(date.getTime());
return this;
};
}
因此,为了使用它,我可以简单地写下:
var date_subtract = new Date().adjustDate(-4),
date_add = new Date().adjustDate(4);