Tengo en mi tabla db, la hour y el minute que ingresa un usuario. por lo que podría ser hora = 18 y minuto = 24. Necesito convertir esos dos, básicamente 18:24 a epoch .
Traté de hacer:
let hour = "20" let minute = "55" let myTime = hour + ":" + minute const timestamp2 = epoch(myTime)pero es NaN. ¿Alguna idea si esto es posible?
Una hora y un minuto no son suficientes para obtener una marca de tiempo de Unix, también necesita año, mes, día, segundos y milisegundos. De todos modos, si tiene la intención de utilizar la fecha actual como referencia para basar estos valores, puede hacer lo siguiente:
const hour = "20"; const minute = "55"; const date = new Date(); date.setHours(hour); date.setMinutes(minute); const timestamp = date.getTime();Un tiempo de época es la cuenta de milisegundos desde o hasta el 1 de enero de 1970 a las 00:00:00 UTC (que es la época de Unix, el punto cero de su calendario).
Una hora, como las 20:55, sin fecha no está anclada y, por lo tanto, no se puede convertir a hora de época.
Puede convertir a su compensación desde el comienzo del día en milisegundos, obtener el tiempo de época para un día en particular al comienzo del día y sumar los dos valores.
function offsetFromStartOfDayInMilliseconds( h = 0 , m = 0 , s = 0 , ms = 0 ) { let offset = 0; offset += h * MS_PER_HR; offset += m * MS_PER_MIN; offset += s * MS_PER_SEC; offset += ms * MS_PER_MS; return offset; } const MS_PER_MS = 1; const MS_PER_SEC = 1000; const MS_PER_MIN = 60 * MS_PER_SEC; const MS_PER_HOUR = 60 * MS_PER_MIN;