jq里面,如何用getDate()和getDay()函数遍历出当月的所有日子和星期?
比如现在是8月,我想得到1至31日这31个数字,并同时得到对应的星期
可是问题就是,getDate()和getDay()函数只能显示1个,该怎么遍历出当月所有的呢?
新手,请指教。谢谢
sailkob
9 years, 10 months ago
Answers
写得不好。
var week = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
function getNextDate(date) {
return new Date(date.getTime() + 1000 * 60 * 60 * 24);
}
function getMonthStartDate(date) {
var newDate = new Date(date);
newDate.setDate(1);
return newDate;
}
function printMonth() {
var today = new Date();
var startDay = getMonthStartDate(today);
do {
console.log(startDay.getDate());
console.log(week[startDay.getDay()]);
startDay = getNextDate(startDay);
}while(startDay.getDate() != 1);
}
printMonth();
♂呵♂呵♂
answered 9 years, 10 months ago
var d = new Date(); // 这是当天
d.setDate(1); // 这就是1号
var weekday = d.getDay(); // 1号星期几,从星期天为0开始
d.setMonth(d.getMonth() + 1);
d.setDate(0); // 这两句得到最当月最后一天
var end = d.getDate(); // 最后一天的日,比如8月就是31
var days = [];
for (var i = 0; i < end; i++) {
days[i] = {
day: i + 1,
week: (weekday + i) % 7
}
}
// 最后 days 就是你想要的数据
console.log(days);
来看看 HTML 中的效果
高亮当前日期的版本在这里
loli在上
answered 9 years, 10 months ago