Saltar al contenido

Javascript: convertir la hora del día de 24 horas string a 12 horas con AM/PM y sin zona horaria

Nuestro grupo especializado pasados algunos días de investigación y de juntar de datos, obtuvimos los datos necesarios, queremos que todo este artículo sea de gran utilidad para tu plan.

Solución:

Nada incorporado, mi solución sería la siguiente:

function tConvert (time) 2[0-3])(:)([0-5]d)(:[0-5]d)?$/) 

tConvert ('18:00:00');

Esta función usa una expresión regular para validar el tiempo string y dividirlo en sus partes componentes. Tenga en cuenta también que los segundos en el tiempo pueden omitirse opcionalmente. Si se presentó una hora válida, se ajusta agregando la indicación AM/PM y ajustando las horas.

El valor devuelto es el tiempo ajustado si se presentó un tiempo válido o el original string.

ejemplo de trabajo

(function() nr*)();

tConvert tests :

  18:00:00
  18:00
  00:00
  11:59:01
  12:00:00
  13:01:57
  24:00
  sdfsdf
  12:61:54

Para obtener AM/PM, compruebe si la parte de la hora es inferior a 12, entonces es AM, de lo contrario es PM.

Para obtener la hora, haz (hour % 12) || 12.

Esto debería hacerlo:

var timeString = "18:00:00";
var H = +timeString.substr(0, 2);
var h = H % 12 || 12;
var ampm = (H < 12 || H === 24) ? "AM" : "PM";
timeString = h + timeString.substr(2, 3) + ampm;

http://jsfiddle.net/Skwt7/4/

Eso supone que las horas de la mañana están formateadas como, por ejemplo, 08:00:00. Si están formateados sin el cero inicial, deberá probar la posición de los primeros dos puntos:

var hourEnd = timeString.indexOf(":");
var H = +timeString.substr(0, hourEnd);
var h = H % 12 || 12;
var ampm = (H < 12 || H === 24) ? "AM" : "PM";
timeString = h + timeString.substr(hourEnd, 3) + ampm;

http://jsfiddle.net/Skwt7/3/

toLocaleTimeString() lo hace muy simple. Ya no es necesario que hagas esto tú mismo. Serás más feliz y vivirás más si no atacas las citas con string métodos.

const timeString = '18:00:00'
// Append any date. Use your birthday.
const timeString12hr = new Date('1970-01-01T' + timeString + 'Z')
  .toLocaleTimeString(,
    timeZone:'UTC',hour12:true,hour:'numeric',minute:'numeric'
  );
document.getElementById('myTime').innerText = timeString12hr

valoraciones y reseñas

Al final de la artículo puedes encontrar las interpretaciones de otros gestores de proyectos, tú también puedes dejar el tuyo si te apetece.

¡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 *