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

Dev
quelle

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.

c0xc
quelle
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.

mjohnsonengr
quelle
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
Tarun Gupta
quelle
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
Gene Bo
quelle
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>

Saurabh Mistry
quelle