Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

239
Vistas
Cuando sabes qué semana es, cómo averiguar la fecha de inicio de la semana

A través del módulo 'date-fns', recibo números de cuántas semanas es la fecha de este año.

 const current = '2022-03-10' const weekNumber = getWeek(current, 1) // 11

Por el contrario, si solo conoces los números, querrás saber cómo hacer el número de la primera fecha de la semana.

La forma en que quiero saber.

 const weekNumber = 11; const weekOfstartDate = anyFunc(weekNumber) // '2022-03-07'

¿Sabes la respuesta a esta solución?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes usar el token I:

 var dateFns = require("date-fns"); console.log(dateFns.parse('10','I', new Date()));

En npm.runkit.com que devuelve una fecha para el lunes 7 de marzo de 2022. Parece que date-fns asume el año de la semana actual. No tengo idea de cómo especificar el año, intentando:

 console.log(dateFns.parse('2022-10','YYYY-II', new Date(),{ useAdditionalWeekYearTokens: true }));

Lanza un error de rango: la cadena de formato no debe contener YYYY y II al mismo tiempo. De manera similar, para "2022W10" y tokens "YYYY'W'II", dice que los tokens Y e I no pueden estar en la misma cadena de formato.

Una función para hacer lo mismo es:

 // Returns the first day (Monday) of the specified week // Year defaults to the current local calendar year function getISOWeek(w, y = new Date().getFullYear()) { let d = new Date(y, 0, 4); d.setDate(d.getDate() - (d.getDay() || 7) + 1 + 7*(w - 1)); return d; } // Mon Mar 14 2022 console.log(getISOWeek(11).toString()); // Mon Jan 02 2023 console.log(getISOWeek(1,2023).toString()); // Mon Dec 28 2026 console.log(getISOWeek(53,2026).toString());

Una función robusta debería validar la entrada de modo que el número de semana sea del 1 al 53 y que 53 solo se permita para años que tengan 53 semanas.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda