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

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

Итак, вместо того, чтобы делать вручную

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

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

weekArray = moment.js(week)

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

Ответ 2

Вот небольшой фрагмент, чтобы получить (локальные) имена дней недели от Moment.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').

Ответ 3

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

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"]

Вы можете изменить .format(string), чтобы изменить формат дней. Например, 'dddd' будет отображать:

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

Отметьте Документацию Moment.js для более продвинутого формата