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.