2011-06-18 19 views

Odpowiedz

14

Znaczniki czasu UNIX to sekundy od epoki. Po prostu odjąć liczbę sekund, w ciągu sześciu godzin:

date('m-d g:Ga', strtotime($row['time_stamp'])-21600) 

Można alternatywnie użyć strtotime ponownie:

date('m-d g:Ga', strtotime('-6 hours', strtotime($row['time_stamp']))) 
+0

To działało na odjęcie czasu. Jednak bez dodania do niego -21600 echo wyniesie 3:03. Kiedy dodam do niego -21600, to echo to 21:21. Jak tracę tam czas? –

+0

21600s = 6 godzin, więc nie wolno używać obu tych samych znaczników czasu. – Robin

4

Ponieważ jest to w MySQL, można mieć MySQL zrobić obliczenia dla Ciebie:

SELECT DATE_FORMAT('...', DATE_SUB(time_stamp, INTERVAL 6 HOUR)) ... 

Zaoszczędziłoby to na obciążeniu MySQL, który musiałby przekonwertować jego wewnętrzną reprezentację na pełny ciąg, a narzut strtotime PHP(), parsując ten ciąg, aby go zmienić. z powrotem do kolejnego ciągu. Chociaż strtotime jest czasami magiczne, zdecydowanie nie jest wydajne.

0

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