moment.js, come ottenere il numero del giorno della settimana


99

Ho un oggetto data del momento e desidero ottenere il numero del giorno selezionato (0-6) o (1-7).

Ho provato questo, ma non funziona

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

aiutami con questo per favore

Risposte:


142

Definisci "non funziona".

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>

Viene stampato "4", come previsto.


54
Per chi è curioso, il 02/07/2015 è stato un giovedì. Significato, 0 -> domenica. Cheers
Sharukh Mastan

13
La parte importante qui è che questo dipende dalla lingua, se la tua lingua è impostata su un paese che ha il lunedì come inizio settimana, 0 significa lunedì. - momentjs.com/docs/#/get-set/weekday
Kjellski

4
utilizzare .isoWeekday()e quindi convertire nella locale richiesta è una scelta migliore. Questa risposta è buona se controlli esplicitamente la lingua in un ambiente multi-locale
Fr0zenFyr

93

Se stai cercando specificamente l'approccio 1-7 ...

Questo è il numero della settimana ISO . moment.js ha tenuto conto anche di questo. UsoisoWeekday()

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>

Visto che ho scritto questa risposta un martedì, oggi questo mi dà un 2.


6
È anche un lavoro aggiungere che, per ottenere il DOW con domenica come giorno 1, sarebbe var dow = moment (). IsoWeekday ()% 7 dove domenica è 0.
Differenza

23

Penso che funzionerebbe

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

2

Nella pagina dei documenti, nota che hanno queste utili intestazioni

http://momentjs.com/docs/#/get-set/weekday/
(all'inizio non li ho visti)

Con sezioni di intestazione per:

  • Data del mese
  • Giorno della settimana
  • eccetera

.

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

1

Puoi ottenerlo in 2 modi usando moment e anche usando 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>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.