Así que estoy comenzando con un formato REALMENTE extraño, que es esencialmente los minutos después de la medianoche representados como un número (en la zona horaria a la que estoy tratando de llegar). Entonces, si estoy en Nueva York y me refiero a las 6:30 a. m., el valor inicial es 390.
Aquí está mi código hasta ahora:
const open_time = (String(startingTime / 60)).split(".") // startingTime of 390 becomes an array of ['6','5'] const open_hour = open_time[0] // open hour becomes '6' var open_minutes = 0 // if the startingTime was evenly divisible by 60, that means we're on the hour if (open_time[1] !== undefined) { // startingTime wasn't evenly divisible by 60, need to do some calculations open_minutes = Number(`0.${open_time[1]}`) * 60 // get the minutes into the hour } const open_minutes_formatted = open_minutes.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }) // make sure the minutes format in 00 - 09 instead of 0 - 9 for the first 10 minutes of the hour. const hours = `${open_hour}:${open_minutes_formatted}` // final string outputtedEn este punto, las horas tienen un formato similar a las 6:30 o, si es por la tarde, a las 15:00. Mi pregunta es, ¿cómo uso moment.js para formatear esta hora en función del reloj de 12 horas frente al reloj de 24 horas en función de dónde se encuentra el usuario?
En este punto del código, he usado el módulo tzlookup para obtener la zona horaria donde se encuentra el usuario, así que creo que puedo usar eso, pero no estoy seguro de cómo se ve la conversión real. ¡Cualquier ayuda apreciada!