我正在寻找一个javascript函数,它将获取一个日期值并告诉我接下来的30天值。
例如,如果当前日期是2011年8月5日 我希望它在此之后的所有30天内列出:
该功能基本上处理月份日(30或31或28等)
这是我能轻易解决的问题吗? 非常感谢你的帮助。
答案 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小时,这是不正确的。考虑夏令时开始和结束的日子。