2011-06-18 8 views

Respuesta

14

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']))) 
+0

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í? –

+0

21600s = 6 horas, por lo que no debe estar trabajando en la misma marca de tiempo ambas veces. – Robin

4

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.

0

$ vindate = date ('H: i: s', strtotime ($ row ['ms_attend_time']) + 19800); echo $ vindate;

Cuestiones relacionadas