鉴于一周中的某一天( var day ),下面的代码将打印每个日期 从今天开始的一年中的一天。从4 =星期四开始,我会得到一份清单 今年剩下的所有星期四。如果有的话,我只是很好奇 '整洁'的方法来实现这个目标?
var day = 4;
var date = new Date();
var nextYear = date.getFullYear() + 1;
while(date.getDay() != day)
{
date.setDate(date.getDate() + 1)
}
while(date.getFullYear() < nextYear)
{
var yyyy = date.getFullYear();
var mm = (date.getMonth() + 1);
mm = (mm < 10) ? '0' + mm : mm;
var dd = date.getDate();
dd = (dd < 10) ? '0' + dd : dd;
console.log(yyyy + '-' + mm + '-' + dd)
date.setDate(date.getDate() + 7);
}
输出:
2011-02-10
2011-02-17
2011-02-24
2011-03-03
2011-03-10
...等
答案 0 :(得分:5)
如果您使用Datejs,它看起来会更漂亮。
var thursday = Date.today().next().thursday(),
nextYear = Date.next().january().set({day: 1}),
format = 'yyyy-MM-dd';
while (thursday.isBefore(nextYear))
{
console.log(thursday.toString(format));
thursday = thursday.add(7).days();
}