Saltar al contenido

¿Cómo obtener la hora actual en formato hh: mm AM / PM en Javascript?

Después de investigar con especialistas en esta materia, programadores de varias áreas y profesores hemos dado con la solución al dilema y la compartimos en esta publicación.

Solución:

Puede convertir la hora actual al formato de 12 horas con una sola línea

new Date().toLocaleTimeString('en-US',  hour: 'numeric', hour12: true, minute: 'numeric' );

Y para agregar dos horas a su tiempo actual

Date.now() + 2 * 60 * 60 * 1000

Entonces puedes hacerlo en una simple línea como:

new Date(Date.now() + 2 * 60 * 60 * 1000).toLocaleTimeString('en-US', hour: 'numeric', hour12: true, minute: 'numeric' );

Usar Date métodos para establecer y recuperar el tiempo y construir un tiempo string, algo similar al fragmento.

[edit] Solo por diversión: se agregó un enfoque más genérico, usando 2 Date.prototype extensiones

var now = new Date();
now.setHours(now.getHours()+2);
var isPM = now.getHours() >= 12;
var isMidday = now.getHours() == 12;
var result = document.querySelector('#result');
var time = [now.getHours() - (isPM && !isMidday ? 12 : 0), 
            now.getMinutes(), 
            now.getSeconds() || '00'].join(':') +
           (isPM ? ' pm' : 'am');
            
result.innerHTML = 'the current time plus two hours = '+ time;

// a more generic approach: extend Date
Date.prototype.addTime = addTime;
Date.prototype.showTime = showTime;

result.innerHTML += '

using Date.prototype extensions

'; result.innerHTML += 'the current time plus twenty minutes = '+ new Date().addTime(minutes: 20).showTime(); result.innerHTML += '
the current time plus one hour and twenty minutes = '+ new Date().addTime(hours: 1, minutes: 20).showTime(); result.innerHTML += '
the current time minus two hours (format military) = '+ new Date().addTime(hours: -2).showTime(true); result.innerHTML += '
the current time plus ten minutes (format military) = '+ new Date().addTime(minutes: 10).showTime(true); function addTime(values) for (var l in values) var unit = l.substr(0,1).toUpperCase() + l.substr(1); this['set' + unit](this['get' + unit]() + values[l]); return this; function showTime(military) var zeroPad = function () return this < 10 ? '0' + this : this; ; if (military) return [ zeroPad.call(this.getHours()), zeroPad.call(this.getMinutes()), zeroPad.call(this.getSeconds()) ].join(':'); var isPM = this.getHours() >= 12; var isMidday = this.getHours() == 12; return time = [ zeroPad.call(this.getHours() - (isPM && !isMidday ? 12 : 0)), zeroPad.call(this.getMinutes()), zeroPad.call(this.getSeconds()) ].join(':') + (isPM ? ' pm' : ' am');

Simplemente, puedes hacer esto


const date = new Date()
const options = 
  hour: 'numeric',
  minute: 'numeric',
  hour12: true
;
const time = new Intl.DateTimeFormat('en-US', options).format(date)
console.log(time)

Para obtener más detalles, puede consultar los documentos de MDN sobre el mismo.

Aquí tienes las reseñas y valoraciones

Puedes añadir valor a nuestro contenido informacional participando con tu experiencia en las anotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *