moment.js, cómo obtener el número del día de la semana

99

Tengo un objeto de fecha de momento y quiero obtener el número de día seleccionado (0-6) o (1-7).

Intenté esto, pero no funciona

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

Ayudame con esto por favor

Dev
fuente

Respuestas:

142

Defina "no 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>

Esto imprime "4", como se esperaba.

c0xc
fuente
54
Para los curiosos, el 02-07-2015 fue Jueves. Es decir, 0 -> Domingo. Saludos
Sharukh Mastan
13
Lo importante aquí es que esto depende de la configuración regional, si su configuración regional está configurada en un país que tiene los lunes como inicio de semana, 0 significa lunes. - momentjs.com/docs/#/get-set/weekday
Kjellski
4
usar .isoWeekday()y luego convertir a la configuración regional requerida es una mejor opción. Esta respuesta es buena si controla la configuración regional explícitamente en un entorno de múltiples configuraciones regionales
Fr0zenFyr
93

Si está buscando específicamente el enfoque 1-7 ...

Este es el número de día de la semana ISO . moment.js también ha tenido esto en cuenta. UtilizarisoWeekday()

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>

Viendo que escribí esta respuesta un martes, hoy me da un 2.

mjohnsonengr
fuente
6
También es un trabajo agregar que, para obtener el DOW con el domingo como día 1, sería var dow = moment (). IsoWeekday ()% 7 donde el domingo es 0.
Diferencia
23

Creo que esto funcionaría

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

En la página de documentos, observe que tienen estos útiles encabezados

http://momentjs.com/docs/#/get-set/weekday/
(no los vi al principio)

Con secciones de encabezado para:

  • Fecha del mes
  • Día de la semana
  • etc

.

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

Puede obtener esto de 2 maneras usando moment y también 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>

Mistry Saurabh
fuente