moment.js, jak uzyskać numer dnia tygodnia

100

Mam obiekt daty chwili i chcę uzyskać wybrany numer dnia (0-6) lub (1-7).

Próbowałem tego, ale to nie działa

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

pomóż mi z tym, proszę

Dev
źródło

Odpowiedzi:

143

Zdefiniuj „nie działa”.

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>

Zgodnie z oczekiwaniami wypisuje "4".

c0xc
źródło
55
Dla ciekawskich 02.07.2015 był czwartek. Czyli 0 -> niedziela. Pozdrawiam
Sharukh Mastan
13
Ważne jest tutaj to, że jest to zależne od lokalizacji, jeśli ustawienia regionalne są ustawione na kraj, w którym poniedziałki są początkiem tygodnia, 0 oznacza poniedziałek. - momentjs.com/docs/#/get-set/weekday
Kjellski Kjellski
4
użycie, .isoWeekday()a następnie konwersja na wymagane ustawienie regionalne jest lepszym wyborem. Ta odpowiedź jest dobra, jeśli jawnie kontrolujesz lokalizację w środowisku wielu lokalizacji
Fr0zenFyr
95

Jeśli szukasz konkretnie podejścia 1-7 ...

To jest numer dnia tygodnia ISO . moment.js również to wziął pod uwagę. Posługiwać sięisoWeekday()

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>

Widząc, jak napisałem tę odpowiedź we wtorek, dziś daje mi to 2.

mjohnsonengr
źródło
7
Warto również dodać, że aby uzyskać DOW z niedzielą jako dniem 1, będzie var dow = moment (). IsoWeekday ()% 7 gdzie niedziela to 0.
Różnica
23

Myślę, że to zadziała

moment().weekday(); //if today is thursday it will return 4
Tarun Gupta
źródło
2

Na stronie z dokumentami zwróć uwagę, że mają te pomocne nagłówki

http://momentjs.com/docs/#/get-set/weekday/
(na początku ich nie widziałem)

Z sekcjami nagłówka dla:

  • Data miesiąca
  • Dzień tygodnia
  • itp

.

  var now = moment();
  var day  = now.day();
  var date = now.date(); // Number
Gene Bo
źródło
1

Możesz to uzyskać na dwa sposoby, używając momentu, a także używając JavaScript

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
źródło