Tengo este código para mostrar una fecha y hora de la base de datos. ¿Cómo lo modificaría para restar 6 horas de la marca de tiempo?Resta 6 horas de la marca de tiempo que usa PHP
date('m-d g:Ga', strtotime($row['time_stamp']))
Tengo este código para mostrar una fecha y hora de la base de datos. ¿Cómo lo modificaría para restar 6 horas de la marca de tiempo?Resta 6 horas de la marca de tiempo que usa PHP
date('m-d g:Ga', strtotime($row['time_stamp']))
Las marcas de tiempo de UNIX son segundos desde la Época. Sólo hay que restar el número de segundos en seis horas:
date('m-d g:Ga', strtotime($row['time_stamp'])-21600)
Se podría, alternativamente, utilizar strtotime
nuevo:
date('m-d g:Ga', strtotime('-6 hours', strtotime($row['time_stamp'])))
Ya que está en MySQL, puede tener MySQL hacer el cálculo para usted:
SELECT DATE_FORMAT('...', DATE_SUB(time_stamp, INTERVAL 6 HOUR)) ...
Esto le ahorraría la sobrecarga de MySQL al tener que convertir su representación interna en una cadena completa, y la sobrecarga de strtotime de PHP() analizar esa cadena solo para convertirla de vuelta a otra cadena. Mientras strtotime es mágico a veces, definitivamente no es eficiente.
$ vindate = date ('H: i: s', strtotime ($ row ['ms_attend_time']) + 19800); echo $ vindate;
Esto funcionó para restar el tiempo. Sin embargo, sin agregar el -21600 en él, se apaga a las 3:03 a.m. Cuando agrego el -21600 en él, sale como 9:21 pm. ¿Cómo estoy perdiendo tiempo allí? –
21600s = 6 horas, por lo que no debe estar trabajando en la misma marca de tiempo ambas veces. – Robin