2014-09-18 4 views
10

Ich frage mich, ob es einen Weg gibt, momentjs zu bekommen oder einfach nur pures Javascript zu verwenden, um eine Reihe von alltäglichen Wochentagen und jede Stunde an einem Tag zu erstellen, so dass ich sie nicht fest codieren muss.Mit Moment js ein Array mit Tagen der Woche und Stunden des Tages erstellen?

So anstelle von manuell zu tun

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

ich nach einem Weg, vor allem so etwas wie

weekArray = moment.js(week) 

Die gleiche Idee für Zeiten im Laufe des Tages zu tun, so konnte ich möglicherweise anders verwenden Formate.

Antwort

29

Für Wochentage, Sie moment's weekdays method

weekArray = moment.weekdays() 
+2

Ist es möglich, es mit einem Gebietsschema zu tun? – ilyo

+1

@ ilyo ja, z.B. moment.localeDate ('en'). Wochentage() –

0

Hier ist ein kleiner Ausschnitt der (länderspezifische) Namen der Tage der Woche von Moment.js zu bekommen:

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

Wenn Sie die Woche wollen am Montag beginnen, ersetzen moment(i, 'e') mit moment(i+1, 'e').

+1

Ein kürzerer Weg: 'läßt Tage = moment.weekdays(); Tage.Push (Tage.Verschieben()); moment.euweekdays = Tage; 'und dann mit' moment.euweekdays' darauf zugreifen – user3743266

0

ich mit dieser Lösung verwenden:

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

Ich habe Ergebnis :

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

Sie können ändern .format (string) zu Ändern Sie das Tagesformat. Z. B 'dddd' wird zeigt:

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

prüfen Moment.js documentation für fortgeschrittenere Format

Verwandte Themen