有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
当前回答
var my date = new Date().toISOString().substring(0, 10);
它只能给你2014-06-20这样的日期。希望会有所帮助
其他回答
一些现有的解决方案很接近,但并不完全符合我的要求。此函数可处理正值或负值,并处理边界情况。
function addDays(date, days) {
return new Date(
date.getFullYear(),
date.getMonth(),
date.getDate() + days,
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
);
}
我发现getDate()/setDate()方法的一个问题是,它太容易将所有内容转换为毫秒,而且语法有时我很难理解。
相反,我喜欢处理1天=86400000毫秒的事实。
因此,对于您的特定问题:
today = new Date()
days = 86400000 //number of milliseconds in a day
fiveDaysAgo = new Date(today - (5*days))
就像一个魅力。
我一直使用这种方法进行30/60/365天的滚动计算。
您可以很容易地推断出这一点,以创建月、年等的时间单位。
var daysToSubtract = 3;
$.datepicker.formatDate('yy/mm/dd', new Date() - daysToSubtract) ;
函数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());