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

514
Vistas
¿Cómo hacer un bucle for para reunir todos los días de una semana que está entre meses?

Entonces, necesito recopilar todos los días de la semana actual, de domingo a sábado, comencé a crear un código que toma la fecha real y crea un ciclo for para insertar cada día en una matriz, el problema es que en semanas como esta ( que comienza en un mes y termina en otro) el código no funcionará.

Aquí está el código:

 const createWeek = async() => { const d = new Date(); let month = d.getMonth() + 1; let year = d.getFullYear(); const inicialDate = d.getDate() - d.getDay(); const lastDate = inicialDate + 6; console.log(d, 'current date') let firstDay = new Date(d.setDate(inicialDate)); let lastDay = new Date(d.setDate(lastDate)) let week = [] for (let i = firstDay.getDate(); i <= lastDay.getDate(); i++) { week.push(`${i.toLocaleString().length <= 1 ? "0" + i : i}${month.toLocaleString().length <= 1 ? "0" + month : month}${year}`); } return week; }

Así que sé que el problema se debe a que en mi ciclo for el primer día de la semana es más grande que el último día de la semana, pero no sé cómo lidiar con eso. Quiero saber cuál es el mejor enfoque para esto.

Gracias por tu ayuda.

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

0

Sugeriría usar Date.setDate() para ajustar cada día, esto también ajustará el mes correctamente.

Comenzamos obteniendo el día WeekStart, restando el resultado de currentDay.getDay() de currentDate.getDate() y usándolo como entrada para setDate().

Luego podemos usar Array.from() para generar nuestra lista de siete días.

Sugeriría primero crear una matriz de siete fechas y luego crear una función de formato personalizada, por ejemplo, formatDate() para este propósito. Esto nos permite separar la lógica de crear y mostrar las fechas.

 function createWeek(currentDay = new Date()) { const weekStart = new Date(currentDay); weekStart.setDate(currentDay.getDate() - currentDay.getDay()); return Array.from( { length: 7 }, (v,k) => { const dt = new Date(weekStart); dt.setDate(weekStart.getDate() + k); return dt; }) } function formatDate(date) { return [date.getDate(), date.getMonth() + 1, date.getFullYear()] .map(n => (n + '').padStart(2, '0')) .join(''); } const weekDates = createWeek(); console.log('Formatted dates:') for(let date of weekDates) { console.log(formatDate(date)); }
 .as-console-wrapper { max-height: 100% !important; }

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