2014-09-18 22 views
10

Mi chiedevo se esistesse un modo per ottenere momentjs o semplicemente utilizzare pure javascript per creare una serie di giorni della settimana e ogni ora in un giorno in modo che non dovessi hardcode.Utilizzare moment js per creare un array con i giorni della settimana e le ore del giorno?

Così, invece di fare manualmente

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

Sto cercando un modo per fare qualcosa di simile

weekArray = moment.js(week) 

La stessa idea di volte durante il giorno in particolare, così ho potuto potenzialmente utilizzare diversi formati.

risposta

29

per i giorni feriali, è possibile utilizzare moment's weekdays method

weekArray = moment.weekdays() 
+2

È possibile farlo con un locale? – ilyo

+1

@ilyo sì, ad es. moment.localeDate ('en'). giorni della settimana() –

0

Ecco un piccolo frammento per ottenere i nomi (specifiche della locale) dei giorni della settimana dal 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" ] 

Se si desidera che la settimana per iniziare il Lunedi, sostituire moment(i, 'e') con moment(i+1, 'e').

+1

una via più breve: 'lasciate giorni = moment.weekdays(); days.push (days.shift()); moment.euweekdays = days; 'e quindi accedervi con' moment.euweekdays' – user3743266

0

Io uso questa soluzione:

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

ho ottenuto risultato:

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

È possibile modificare .format (stringa) per cambia il formato dei giorni. Per esempio 'dddd' saranno spettacoli:

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

Controllare Moment.js documentation per il formato più avanzato

Problemi correlati