moment.js, comment obtenir le numéro du jour de la semaine

99

J'ai un objet de date de moment et je souhaite obtenir le numéro de jour sélectionné (0-6) ou (1-7).

J'ai essayé ça, mais ça ne marche pas

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

aide moi avec ça s'il te plait

Dev
la source

Réponses:

142

Définissez "ne fonctionne pas".

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>

Cela imprime "4", comme prévu.

c0xc
la source
54
Pour les curieux, le 02/07/2015 était un jeudi. Signification, 0 -> dimanche. Cheers
Sharukh Mastan
13
L'important ici est que cela dépend de la locale, si votre locale est définie sur un pays qui a lundi comme début de semaine, 0 signifie lundi. - momentjs.com/docs/#/get-set/weekday
Kjellski
4
utiliser .isoWeekday()puis convertir les paramètres régionaux requis est un meilleur choix. Cette réponse est bonne si vous contrôlez la locale explicitement dans un environnement multi-locale
Fr0zenFyr
93

Si vous recherchez spécifiquement l'approche 1-7 ...

Il s'agit du numéro du jour de la semaine ISO . moment.js a également pris cela en compte. UtilisationisoWeekday()

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>

Vu que j'ai écrit cette réponse un mardi, cela me donne aujourd'hui un 2.

mjohnsonengr
la source
6
C'est aussi un travail d'ajouter que, pour obtenir le DOW avec dimanche comme jour 1, serait var dow = moment (). IsoWeekday ()% 7 où dimanche est 0.
Difinity
23

Je pense que ça marcherait

moment().weekday(); //if today is thursday it will return 4
Tarun Gupta
la source
2

À partir de la page de documentation, notez qu'ils ont ces en-têtes utiles

http://momentjs.com/docs/#/get-set/weekday/
(je ne les ai pas vus au début)

Avec des sections d'en-tête pour:

  • Date du mois
  • Jour de la semaine
  • etc

.

  var now = moment();
  var day  = now.day();
  var date = now.date(); // Number
Gene Bo
la source
1

Vous pouvez l'obtenir de 2 manières en utilisant moment et également en utilisant 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
la source