我需要在过去一周的整天中包含一系列日期,包括当天,例如
['05/06', '04/06', '03/06', '02/06', '01/06', '31/05', '30/05']
(格式dd / mm)
我该怎么做?
我知道有Date()对象,但除此之外我感到难过。
逻辑沿着:
var dates = [];
var today = new Date();
for (var i = 0; i<7; i++){
var date = today - (i+1);
dates.push(date);
}
答案 0 :(得分:5)
所以你想要一个包含今天日期和另外6个元素的数组,今天是date-1,今天是date-2等......?
var dates = [];
var date = new Date();
for (var i = 0; i < 7; i++){
var tempDate = new Date();
tempDate.setDate(date.getDate()-i);
var str = tempDate.getDate() + "/" + tempDate.getMonth();
dates.push(str);
}
console.log(dates);
输出: ["5/5", "4/5", "3/5", "2/5", "1/5", "31/4", "30/4"]
如果你需要前导0的数字,试试这个:
var dates = [];
var date = new Date();
for (var i = 0; i < 7; i++){
var tempDate = new Date();
tempDate.setDate(date.getDate()-i);
var str = pad(tempDate.getDate()) + "/" + pad(tempDate.getMonth());
dates.push(str);
}
console.log(dates);
function pad(n) {
return (n < 10) ? ("0" + n) : n;
}
输出: ["05/05", "04/05", "03/05", "02/05", "01/05", "31/04", "30/04"]
答案 1 :(得分:0)
检查此工作样本,其中打印出所有日期:
http://jsfiddle.net/danyu/Tu5R6/6/
这是主要逻辑:
for(var i=7;i>0;i--)
{
tempDate.setDate(tempDate.getDate()-1);
output+=tempDate+"<br/>";
}
修改它以将那些日子存储到数组中。