寻找未来30天(javascript)

时间:2011-05-19 16:14:03

标签: javascript date

我正在寻找一个javascript函数,它将获取一个日期值并告诉我接下来的30天值。

例如,如果当前日期是2011年8月5日 我希望它在此之后的所有30天内列出:

  • 2011年8月5日
  • 2011年8月6日
  • .....
  • 2011年9月3日

该功能基本上处理月份日(30或31或28等)

这是我能轻易解决的问题吗? 非常感谢你的帮助。

4 个答案:

答案 0 :(得分:8)

您可以使用for循环并撰写new Date(year, month - 1, day + i)

Javascript Date构造函数会将超出范围的日期规范化为正确的值,因此这将完全符合您的要求。
您需要写month - 1,因为月份是从零开始的。

以下是此(JSFiddle)的代码:

var today = new Date();

var year = today.getFullYear();
var month = today.getMonth();
var date = today.getDate();

for(var i=0; i<30; i++){
      var day=new Date(year, month - 1, date + i);
      console.log(day);  
}

答案 1 :(得分:1)

快速回答:使用Date.js。例如,你可以做new Date("today + 30 days");,它会理解:]这是一个非常棒的库,我在日期功夫的许多项目中使用...

答案 2 :(得分:0)

如果我正确理解你,那么你可能会想要这样的东西:

var nextXDays = function (days) {
    var today = new Date();
    var days = [];
    var day_length = 1000 * 60 * 60 * 24; //the length of a day in milliseconds
    for(var i = 0; i < days; i++) {
        days.push(today + day_length*i);
    }
}
var days = nextXDays(30); //return an array of the dates

然后,由于你有一组Date个对象,你可以用你喜欢的任何格式显示它们。

答案 3 :(得分:0)

var date=new Date();
document.write(date);
document.write("<br>");

for (var x=0;x<40;++x)
{
  var d=date.getDate();
  date.setDate(d+1);
  document.write(date);
  document.write("<br>");
}

您想使用内置日期功能。不要尝试添加24 * 60 * 60 * 1000毫秒才能到达第二天。这假设每天都是24小时,这是不正确的。考虑夏令时开始和结束的日子。