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

244
Views
Cómo agregar una cierta cantidad de minutos en una entrada DateTime en Javascript

Tengo dos campos de entrada como estos,

 <div class="form-group mb-3"> <label for="">Challenge Start Date and Time</label> <input type="datetime-local" class="form-control form-control-sm" name="date" id = "date" value=""/> </div> <div class="form-group mb-3"> <label for="">Challenge End Date and Time</label> <input type="datetime-local" class="form-control form-control-sm" name="end_date" id = "end_date" value=""/> </div>

Lo que quiero hacer en realidad es cualquier tiempo que el usuario establezca en la entrada "Inicio", ese tiempo + 45 minutos debe establecerse en el segundo campo de entrada.

Por lo tanto, probé lo siguiente, pero desafortunadamente, debido a la conversión del tiempo de entrada en la cadena, no puedo llamar a getMinutes() + 45

 var now = new Date(); now.setMinutes(now.getMinutes() - now.getTimezoneOffset()); document.getElementById('date').value = now.toISOString().slice(0,16); now.setMinutes(now.getMinutes() + 45); document.getElementById('end_date').value = now.toISOString().slice(0,16); document.getElementById('date').addEventListener('change', (e) => { const value = e.target.value; value.setMinutes(value.getMinutes() + 45); document.getElementById('end_date').value = now.toISOString().slice(0,16); });

Recibo este error cada vez que cambio el valor del primer campo de entrada,

 Uncaught TypeError: value.getMinutes is not a function

¿Alguien puede proporcionar una solución a este problema?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Prueba esto

esto cambiará obtener la entrada de campo1 a campo2

 const value = new Date(e.target.value); value.setMinutes(value.getMinutes() + 45); value.setMinutes(value.getMinutes() - value.getTimezoneOffset()); document.getElementById('end_date').value = value.toISOString().slice(0,16);

Te perdiste los minutos de la zona horaria menos el valor calculado

about 4 years ago · Juan Pablo Isaza Report

0

Escribe tu función onchange así:

 document.getElementById('date').addEventListener('change', (e) => { var date = new Date(document.getElementById('date').value); date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); date.setMinutes(date.getMinutes() + 45); document.getElementById('end_date').value=date.toISOString().substring(0, 16); })
about 4 years ago · Juan Pablo Isaza Report

0

El value de un campo datetime-local no devuelve un objeto Date . Devuelve una representación de cadena de la fecha (ISO-8601).

Aquí puede encontrar más información sobre la propiedad value de un <input type="datetime-local">

Para convertir esto en un objeto de Date , simplemente puede pasar el valor al constructor de esta manera:

 var myDate = new Date(e.target.value);
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!