有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
有没有一种简单的方法来获取olain JavaScript日期(例如今天)并返回X天?
例如,如果我想计算今天前5天的日期。
当前回答
var d=新日期();document.write('今天是:'+d.toLocaleString());d.setDate(d.getDate()-31);document.write('<br>5天前是:'+d.toLocaleString());
其他回答
尝试以下操作:
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());
将日期拆分为多个部分,然后返回一个具有调整值的新日期
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日;
它是这样的:
var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);
我发现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 date=新日期();var day=date.getDate();var mnth=date.getMonth()+1;var fDate=day+'/'+mnth+'/'+date.getFullYear();document.write('今天是:'+fDate);var subDate=date.setDate(date.getDate()-1);var todate=新日期(subDate);var today=todate.getDate();var tomnth=todate.getMonth()+1;var endDate=today+'/'+tomnthe+'/'+todate.getFullYear();document.write('<br>1天前是:'+endDate);