Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

242
Views
Empuje una fecha a una matriz con moment js nodejs

Estoy escribiendo una función en NodeJs en la que obtener 2 fechas devuelve una matriz con todas las fechas en el rango. En cambio, obtengo una matriz que se agrega en la misma fecha y se elimina cada vez.

Por ejemplo: Obtener la fecha de inicio 11/01/2026 y la fecha de finalización 11/03/2026 debería devolver [11/01/2026, 11/02/2026, 11/03/2026] ahora lo hace: [11/01/2026] 2026],[11/02/2026, 11/02/2026],[11/03/2026, 11/03/2026, 11/03/2026]

Intenté salir del formato, pero lo convierto en una cadena. Intenté tener 2 matrices y usar el operador de distribución, pero no tuve éxito.

Aquí está mi código:

 const dateList = ({ start, end }) => { let now = moment(start); const end = moment(end); let dates = []; while (now.format('YYYY-MM-DD') <= end.format('YYYY-MM-DD')) { dates.push(now); now = now.add(1, 'days'); } return dates; }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Instancia de uso de momento de objeto

su variable now es una instancia de fecha de momento, por lo que si la presiona en su matriz y establece su día en +1, la instancia en su matriz también obtendrá este cambio porque es la misma instancia. Debe enviar un clon de su instancia de momento.

 const dateList = ({ start, end }) => { let now = moment(start); const end = moment(end); let dates = []; while (now.format('YYYY-MM-DD') <= end.format('YYYY-MM-DD')) { dates.push(now.clone()); now = now.add(1, 'days'); } return dates; }

y puede usar la consulta de momento para probar si el end es después de now .

while(now.format('YYYY-MM-DD') <= end.format('YYYY-MM-DD')) => while(now.isSameOrBefore(end))

codigo final:

 const dateList = ({ start, end }) => { let now = moment(start); const end = moment(end); let dates = []; while (now.isSameOrBefore(end)) { dates.push(now.clone()); now = now.add(1, 'days'); } return dates; }
about 4 years ago · Juan Pablo Isaza Report

0

 const dateList = ({ start, end }) => { let now = moment.utc(start); end = moment.utc(end); let dates = []; while (now.isValid() && end.isValid() && now.isSameOrBefore(end, 'day') /* end day inclusive */) { dates.push(now); now = moment(now).add(1, 'days'); // add 1 day on a new instance } return dates; } console.log(dateList({start: '2026-05-12', end: '2026-05-14'}))
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>



about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!