在JS / Prototype中获得一个月的日子

时间:2010-05-26 14:27:43

标签: javascript date

我正在寻找一种方法,它可以返回给定月份的所有日期。我在标准date() functions找不到任何有用的东西。

即:

getDays(2010-05) // returns something like:

{ day:'Saturday', date:'2010-01-05' },
{ day:'Sunday', date:'2010-02-05' },
{ day:'Monday', date:'2010-03-05' }[...]

这个月的第一天可能是(星期六,01),最后一天(星期一,31)也很棒。

1 个答案:

答案 0 :(得分:3)

你可以很容易地做到这一点。 Javascript“Date”对象对于这样的事情是一个很好的帮助:

function listDays(monthNumber) {
  var days = [],
    today = new Date(),
    d = new Date(today.getFullYear(), monthNumber, 1);

  while (d.getMonth() == monthNumber) {
    days.push({ "date": d.getDate(), "weekday": d.getDay()});
    d.setDate(d.getDate() + 1);
  }
  return days;
}

这只会以月为单位返回月份中的日期,但通过一系列星期几名称可以很容易地扩展:

function listDays(monthNumber) {
  var days = [],
    today = new Date(),
    d = new Date(today.getFullYear(), monthNumber, 1),
    weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

  while (d.getMonth() == monthNumber) {
    days.push({ "date": d.getDate(), "weekday": weekdays[d.getDay()]});
    d.setDate(d.getDate() + 1);
  }
  return days;
}