有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?

例如,如果我想计算今天前5天的日期。


当前回答

var daysToSubtract = 3;
$.datepicker.formatDate('yy/mm/dd', new Date() - daysToSubtract) ;

其他回答

我喜欢以下内容,因为它是一行。DST变化并不完美,但通常足以满足我的需求。

var fiveDaysAgo = new Date(new Date() - (1000*60*60*24*5));

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");

如果您想减去天数并将日期格式化为可读格式,则应考虑创建一个自定义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)

在不使用第二个变量的情况下,您可以用背部x天替换7:

let d=new Date(new Date().getTime() - (7 * 24 * 60 * 60 * 1000))

这将给你最后10天的结果110%工作,你不会得到任何类型的问题

var date = new Date();
var day=date.getDate();
var month=date.getMonth() + 1;
var year=date.getFullYear();
var startDate=day+"/"+month+"/"+year;
var dayBeforeNineDays=moment().subtract(10, 'days').format('DD/MM/YYYY');
startDate=dayBeforeNineDays;
var endDate=day+"/"+month+"/"+year;

你可以根据你的要求改变减去天数