Ситуация
У меня две метки времени.
Один с временем начала и один с временем окончания.
Время начала: 04:43:37
Время окончания: 11:59:59
Теперь я пытаюсь получить разницу между такими датами:
//define timestamps $start_time = 1297698217; $end_time = 1297724399; $time_diff = $end_time - $start_time; //display times and difference echo '<b>Start time:</b> ' . date('dmY h:i:s', $start_time) . '<br />' . '<b>End time:</b> ' . date('dmY h:i:s', $end_time) . '<br />' . '<b>Time difference::</b> ' . date('h:i:s', $time_diff);
Результат
Start time: 14-02-2011 04:43:37 End time: 14-02-2011 11:59:59 Time difference: 08:16:22
Проблема
Теперь проблема в том, что результат должен быть 07:16:22. Я пробовал это в разное время, но каждый раз, когда я получаю тот же результат. Один час слишком большой разницы.
Есть ли специалист, желающий помочь?
Последний должен быть gmdate
вместо date
:
'<b>Time difference::</b> ' . gmdate('h:i:s', $time_diff);
date
настраивается для вашей текущей локали, которая, как представляется, равна GMT + 1. gmdate
не выполняет эту настройку.
Я предполагаю, что вы планируете использовать это только для временных разниц менее 24 часов.
Вы просите, чтобы в строке времени отображалось отображение времени – в зависимости от вашего часового пояса будут различия.
Чтобы сделать его GMT GMT, используйте gmdate (), но это все равно вызовет проблемы, когда разница во времени получит> 24 часа.