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

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.


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.


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

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

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>

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.