Obtengo la misma semana para estas dos fechas a pesar de que están en semanas diferentes cuando miro un calendario. ¿Qué estoy haciendo mal?
moment() .set({ year: 1982, month: 3, day: 21, hour: 0, }) .weeks() moment() .set({ year: 1982, month: 3, day: 26, hour: 0, }) .weeks()El resultado es 17 para ambos.
El 21 de marzo de 1982 es domingo. El 26 de marzo de 1982 es viernes. Están en la misma semana si se encuentra en EE. UU./Canadá o en cualquier lugar que tenga el domingo como primer día de la semana. Así que estás obteniendo el resultado correcto.
Consulte: https://momentjs.com/docs/#/customization/dow-doy/ en la sección "Primer día de la semana y primera semana del año"
// ISO-8601, Europe moment.updateLocale("en", { week: { dow: 1, // First day of week is Monday doy: 4 // First week of year must contain 4 January (7 + 1 - 4) }}); // US, Canada moment.updateLocale("en", { week: { dow: 0, // First day of week is Sunday doy: 6 // First week of year must contain 1 January (7 + 0 - 1) }}); // Many Arab countries moment.updateLocale("en", { week: { dow: 6, // First day of week is Saturday doy: 12 // First week of year must contain 1 January (7 + 6 - 1) }}); // Also common moment.updateLocale("en", { week: { dow: 1, // First day of week is Monday doy: 7 // First week of year must contain 1 January (7 + 1 - 1) }});Según los documentos de Moment.JS:
La semana del año varía dependiendo de qué día es el primer día de la semana (domingo, lunes, etc.) y qué semana es la primera semana del año. Por ejemplo, en los Estados Unidos, el domingo es el primer día de la semana. La semana que tiene el 1 de enero es la primera semana del año.
En su ejemplo de 1982, el primer día del año fue viernes, lo que significa que todos los viernes el número de semana aumentaría. Entonces, aunque el 21 y el 26 de abril (que son sus fechas respectivamente) están en semanas diferentes cuando van de domingo a sábado. Son técnicamente la misma semana debido a la configuración regional que usa Moment.JS para establecer la semana del año.