有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
当前回答
函数addDays(date,daysToAdd){var _24HoursIn毫秒=86400000;返回新日期(Date.getTime()+daysToAdd*_24HoursIn毫秒);};var now=新日期();var昨天=addDays(现在,-1);var明天=addDays(现在,1);
其他回答
尝试以下操作:
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());
如果你想把这一切都放在一行。
从今天起5天
//past
var fiveDaysAgo = new Date(new Date().setDate(new Date().getDate() - 5));
//future
var fiveDaysInTheFuture = new Date(new Date().setDate(new Date().getDate() + 5));
特定日期后5天
var pastDate = new Date('2019-12-12T00:00:00');
//past
var fiveDaysAgo = new Date(new Date().setDate(pastDate.getDate() - 5));
//future
var fiveDaysInTheFuture = new Date(new Date().setDate(pastDate.getDate() + 5));
我写了一个你可以使用的函数。
函数AddOrSubactDays(startingDate,number,add){if(添加){返回新日期(newDate().setDate(startingDate.getDate()+number));}其他{返回新日期(newDate().setDate(startingDate.getDate()-number));}}console.log('Today:'+new Date());console.log('Future:'+AddOrSubactDays(new Date(),5,true));console.log('Last:'+AddOrSubactDays(new Date(),5,false));
get moment.js。所有酷孩子都使用它。它有更多的格式选项等。在哪里
var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');
可选择的转换为JS Date obj以进行角度绑定。
var date = new Date(dateMnsFive.toISOString());
可选择的总体安排
var date = dateMnsFive.format("YYYY-MM-DD");
将日期拆分为多个部分,然后返回一个具有调整值的新日期
function DateAdd(date, type, amount){
var y = date.getFullYear(),
m = date.getMonth(),
d = date.getDate();
if(type === 'y'){
y += amount;
};
if(type === 'm'){
m += amount;
};
if(type === 'd'){
d += amount;
};
return new Date(y, m, d);
}
记住,月份是以零为基础的,但日子不是。即新日期(2009,1,1)==2009年2月1日,新日期(2009,1,0)==2009年1月31日;
要计算比全天更精确的相对时间戳,可以使用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})
参考