我目前正在使用js Date函数进行分配-docs
我注意到当我遍历月份时,2015年2月似乎丢失了。
我不确定为什么,下面是我正在运行的代码:
function test(){
var current = new Date(Date.now())
, start = new Date(current.getFullYear(), current.getMonth() , 0)
, end = new Date();
end.setMonth(start.getMonth() + 24);
while(start < end){
var year = start.getFullYear()
, month = start.getMonth()
, next = "";
document.write(month + "<br />");
next = start.setMonth(start.getMonth() + 1);
start = new Date(next);
}
}
test();
这是我设置了http://jsfiddle.net/4bGmH/的jsfiddle
任何帮助将不胜感激,谢谢。
最佳答案
这是因为,如果不为setMonth
指定date参数,它将使用getDate
(see the docs)中的值。您开始时将小提琴中的日期值设置为30(由于创建日期时使用“ 0”值),因此错过了较短的2月。仅包括第二个2月,因为跳过第一个2月时getDate
值设置为1。尝试:
next = start.setMonth(start.getMonth() + 1, 1);
// instead of
next = start.setMonth(start.getMonth() + 1);
要么
, start = new Date(current.getFullYear(), current.getMonth() , 1)
// instead of
, start = new Date(current.getFullYear(), current.getMonth() , 0)