繁体   English   中英

寻找未来30天(javascript)

[英]Find next 30 days (javascript)

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

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

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

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

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

您可以使用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);  
}

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

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

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对象数组,您可以以任何您喜欢的格式显示它们。

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小时,这是不正确的。 考虑夏令时开始和结束的日子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM