2010-05-26 3 views
2

Я ищу метод, который возвращает все дни данного месяца. Я не нашел ничего полезного в стандарте date() functions.получить дни месяца в JS/Prototype

т.е .:

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) было бы здорово, тоже.

ответ

3

Вы можете сделать это сами довольно легко. «Date» объект Javascript является большим подспорьем для таких вещей, как это:

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; 
} 
+0

Awesome! Спасибо :) – koko

+0

Помните, что месяцы пронумерованы от 0 до 11, а не с 1 по 12! – Pointy

+0

Да, я уже понял это. – koko

Смежные вопросы