moment.js, wie man die Wochentagsnummer erhält


99

Ich habe ein Moment-Datumsobjekt und möchte die ausgewählte Tagesnummer (0-6) oder (1-7) erhalten.

Ich habe es versucht, aber es funktioniert nicht

var aaa = moment(date).day();

hilf mir bitte dabei

Antworten:


141

Definieren Sie "funktioniert nicht".

const date = moment("2015-07-02"); // Thursday Feb 2015
const dow = date.day();
console.log(dow);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Dies gibt erwartungsgemäß "4" aus.


54
Für diejenigen, die neugierig sind, war der 02.07.2015 ein Donnerstag. Bedeutung 0 -> Sonntag. Prost
Sharukh Mastan

13
Das Wichtige dabei ist, dass dies vom Gebietsschema abhängig ist. Wenn Ihr Gebietsschema auf ein Land eingestellt ist, das Montag als Wochenbeginn hat, bedeutet 0 Montag. - momentjs.com/docs/#/get-set/weekday
Kjellski

4
Die Verwendung .isoWeekday()und anschließende Konvertierung in das erforderliche Gebietsschema ist die bessere Wahl. Diese Antwort ist gut, wenn Sie das Gebietsschema explizit in einer Umgebung mit mehreren Gebietsschemas
steuern

91

Wenn Sie speziell nach dem 1-7-Ansatz suchen ...

Dies ist die ISO-Wochentagsnummer . moment.js hat dies ebenfalls berücksichtigt. VerwendenisoWeekday()

console.log(moment().isoWeekday()); // returns 1-7 where 1 is Monday and 7 is Sunday
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Da ich diese Antwort an einem Dienstag geschrieben habe, gibt mir dies heute eine 2.


6
Es ist auch Arbeit hinzuzufügen, dass, um den DOW mit Sonntag als Tag 1 zu erhalten, var dow = moment (). IsoWeekday ()% 7 wäre, wobei Sonntag 0 ist.
Difinity

23

Ich denke das würde funktionieren

moment().weekday(); //if today is thursday it will return 4

2

Beachten Sie auf der Dokumentenseite, dass diese hilfreichen Überschriften vorhanden sind

http://momentjs.com/docs/#/get-set/weekday/
(Ich habe sie zuerst nicht gesehen)

Mit Kopfzeilenabschnitten für:

  • Datum des Monats
  • Wochentag
  • etc

.

  var now = moment();
  var day  = now.day();
  var date = now.date(); // Number

1

Sie können dies auf zwei Arten mit moment und auch mit Javascript erhalten

const date = moment("2015-07-02"); // Thursday Feb 2015
const usingMoment_1 = date.day();
const usingMoment_2 = date.isoWeekday();

console.log('usingMoment: date.day() ==> ',usingMoment_1);
console.log('usingMoment: date.isoWeekday() ==> ',usingMoment_2);


const usingJS= new Date("2015-07-02").getDay();
console.log('usingJavaSript: new Date("2015-07-02").getDay() ===> ',usingJS);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.