以格式dd_mm获取过去一周的日期数组

时间:2014-06-05 12:49:08

标签: javascript jquery

我需要在过去一周的整天中包含一系列日期,包括当天,例如

['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);
}

2 个答案:

答案 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/>";
}

修改它以将那些日子存储到数组中。