Использование moment js для создания массива с днями недели и часами дня?

интересно, есть ли способ получить momentjs или просто использовать чистый javascript для создания массива каждый день недели и каждый час в день, чтобы мне не пришлось его жестко кодировать.

поэтому вместо ручного выполнения

weekArray = ["Monday", "Tuesday", "Wednesday" ....]

Я ищу способ сделать что-то вроде

weekArray = moment.js(week)

та же идея для раз в течение дня, особенно, поэтому я мог бы потенциально использовать разные форматы.

3 ответов


в будние дни вы можете использовать момент в будни метод

weekArray = moment.weekdays()

Я использую такое решение:

var defaultWeekdays = Array.apply(null, Array(7)).map(function (_, i) {
    return moment(i, 'e').startOf('week').isoWeekday(i + 1).format('ddd');
});

я получил результат:

["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

вы можете изменить .формат (строка) для изменения формата дней. Например' dddd ' будет показывает:

["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]

Регистрация момент.документация Яш для более продвинутого формата


вот небольшой фрагмент, чтобы получить (локали) названия дней недели с момента.js:

var weekdayNames = Array.apply(null, Array(7)).map(
    function (_, i) {
        return moment(i, 'e').format('dddd');
    });
console.log(weekdayNames);
// Array [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]

Если вы хотите, чтобы неделя началась в понедельник, замените moment(i, 'e') С moment(i+1, 'e').