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

95
Views
Cree una matriz con intervalos de tiempo y agregue 2 horas

Necesito crear una matriz de elementos en javascript, que agregan 2 horas a un tiempo determinado que configuré. Doy un ejemplo. La hora es

 14:00.

Necesito crear una matriz que contenga todos los intervalos de 30 minutos hasta las 16:00.
Ex

 14:00 14:30 15:00 15:30
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Lo que haría sería crear dos métodos: addTime y createDateArray .

En la función addTime , usamos para convertir una marca de tiempo en un objeto de Date para que sea más fácil de administrar en lugar de una cadena de 14:00 .

 const addTime = (_dateTimestamp, addHours, addMinutes, addSeconds) => { const date = new Date(); date.setTime( _dateTimestamp ); const newDate = new Date(); if(addHours) newDate.setHours( date.getHours() + addHours ); if(addMinutes) newDate.setMinutes( date.getMinutes() + addMinutes ); if(addSeconds) newDate.setSeconds( date.getSeconds() + addSeconds ); return newDate; } const createDateArray = (date, minuteInterval, amount) => { let array = []; for(let i = 1; i <= amount; i++) { const time = addTime( date, 0, minuteInterval * i, 0); array.push( time ); } return array; } const dateToIncrement = new Date().getTime(); const minutesInterval = 30; // every 30 minutes const amountTimes = 10; // will run through 10 times, so it'll calculate the minutes 10 times const result = createDateArray( dateToIncrement, minutesInterval, amountTimes ); console.log(result);

También puede usar la función addTime para otras propiedades como horas y segundos si lo desea configurando el segundo y último argumento del método.

Espero que el código anterior tenga sentido y puedas usarlo.

about 4 years ago · Juan Pablo Isaza Report

0

Aquí hay una función que produce las especificaciones de tiempo como cadenas. Puede tomar un segundo argumento opcional para especificar la hora de finalización (16:00 en su pregunta).

Dos funciones de utilidad convierten una cadena de tiempo a (y desde) una cantidad de minutos.

Finalmente, la matriz de resultados se crea con Array.from :

 const toMinutes = str => str.split(":").reduce((h, m) => h * 60 + +m); const toString = min => (Math.floor(min / 60) + ":" + (min % 60)) .replace(/\b\d\b/, "0$&"); function slots(startStr, endStr="16:00") { let start = toMinutes(startStr); let end = toMinutes(endStr); return Array.from({length: Math.floor((end - start) / 30) + 1}, (_, i) => toString(start + i * 30) ); } console.log(slots("14:00"));

about 4 years ago · Juan Pablo Isaza Report

0

Puedes crear una función básica como esta:

 function getTimes(start) { start = parseInt(start) * 2 + (+start.slice(-2) > 0); end = start+60/12; return Array.from({length: end - start}, (_, i) => (((i + start) >> 1) + ":" + ((i + start)%2*3) + "0").replace(/^\d:/, "0$&")); };

Y usar con:

 getTimes("14:00");
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!