moment.js, como obter o número do dia da semana

99

Tenho um objeto de data de momento e desejo obter o número do dia selecionado (0-6) ou (1-7).

Eu tentei isso, mas não funciona

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

ajude-me com isso, por favor

Dev
fonte

Respostas:

142

Defina "não funciona".

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>

Isso imprime "4", como esperado.

c0xc
fonte
54
Para quem está curioso, 02-07-2015 foi uma quinta-feira. Ou seja, 0 -> domingo. Saúde
Sharukh Mastan
13
A parte importante aqui é que isso depende da localidade, se sua localidade for definida para um país que tenha segundas-feiras como início da semana, 0 significa segunda-feira. - momentjs.com/docs/#/get-set/weekday
Kjellski
4
usar .isoWeekday()e converter para o local necessário é a melhor escolha. Esta resposta é boa se você controlar a localidade explicitamente em um ambiente com várias localidades
Fr0zenFyr
93

Se você está procurando especificamente pela abordagem 1-7 ...

Este é o número ISO do dia da semana . moment.js também levou isso em consideração. UsarisoWeekday()

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 que escrevi esta resposta em uma terça-feira, hoje isso me dá um 2.

mjohnsonengr
fonte
6
Também é trabalho adicionar que, para obter o DOW com domingo como dia 1, seria var dow = moment (). IsoWeekday ()% 7 onde domingo é 0.
Difinity
23

Eu acho que isso funcionaria

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

Na página de documentos, observe que eles têm cabeçalhos úteis

http://momentjs.com/docs/#/get-set/weekday/
(não os vi no início)

Com seções de cabeçalho para:

  • Data do Mês
  • Dia da semana
  • etc

.

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

Você pode conseguir isso de duas maneiras usando o Momento e também o 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
fonte