使用JavaScript生成一个倒数7天的数组。
比如今天是10月1号,生成的数组是["9月25号","9月26号","9月27号","9月28号","9月29号","9月30号","10月1号"]。
这个难点就是需要判断这个月份(可能还需要上一个月份)是30天还是31天,而且还有瑞年的2月28天或者29天。
迷茫2017-04-10 15:57:17
这个不复杂,Date 的 setDate() 可以给 0 和负数作为参数,日期会自动计算
var today = new Date();
var dates = [today];
for (var i = 1; i < 7; i++) {
var d = new Date(today);
d.setDate(d.getDate() - i);
dates.unshift(d);
}
console.log(dates);
[Fri Sep 25 2015 09:58:23 GMT+0800 (中国标准时间),
Sat Sep 26 2015 09:58:23 GMT+0800 (中国标准时间),
Sun Sep 27 2015 09:58:23 GMT+0800 (中国标准时间),
Mon Sep 28 2015 09:58:23 GMT+0800 (中国标准时间),
Tue Sep 29 2015 09:58:23 GMT+0800 (中国标准时间),
Wed Sep 30 2015 09:58:23 GMT+0800 (中国标准时间),
Thu Oct 01 2015 09:58:23 GMT+0800 (中国标准时间)]
var today = new Date();
var dates = [today];
for (var i = 1; i < 7; i++) {
var d = new Date(today);
d.setDate(d.getDate() - i);
dates.unshift(d);
}
dates = dates.map(function(d) {
return (d.getMonth() + 1) + "月" + d.getDate() + "日";
});
console.log(dates);
["9月25日",
"9月26日",
"9月27日",
"9月28日",
"9月29日",
"9月30日",
"10月1日"]
PHP中文网2017-04-10 15:57:17
不需要那么复杂,在js
中非常简单,因为js
的date
对象是可以参与数学运算的!!!看下面的代码:
var now = new Date('2012/3/2 12:00:00'); // 这个算法能自动处理闰年和非闰年。2012年是闰年,所以2月有29号
var s = '';
var i = 0;
while (i < 7) {
s += now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate() + '\n';
now = new Date(now - 24 * 60 * 60 * 1000); // 这个是关键!!!减去一天的毫秒数效果就是把日期往前推一天
i++;
}
alert(s);