Разница эха в два раза

У меня есть PHP-скрипт, который собирает временную метку в базе данных в формате HH: MM: SS. Затем у меня есть страница PHP, которая обновляется каждую секунду через AJAX, целью которой является создание скрипта, который каждый раз извлекает данные PHP, поэтому я могу делать такие вещи, как отображение таймера обратного отсчета. Я пытаюсь показать разницу в два раза в этом формате: HH: MM: SS. IE:

$currentstampedtime = date("H:i:s", strtotime("now")); 

Производит:

 19:29:34 

(и правильно подсчитывается с моим сценарием ajax, отображается как часы.

 $gametimestamp = date("H:i:s", strtotime($gametime)); 

Производит:

 19:19:12 

Потянув временную метку из моей БД, хранящейся в $ gametime.

То, что я пытаюсь сделать, – это различие между этими двумя эхо-сигналами в реальном времени, как таймер обратного отсчета, предполагая, что ajax обновляет страницу каждую секунду, как кажется.

 $difference = ($currentstampedtime - $gametimestamp); 

Ничего не делает. Когда я повторяю var,

 echo $difference; 

я получил

 1 

Ничего, что я пробовал, работает. Пожалуйста помоги. Заранее спасибо.

Вы можете использовать объект php DateTime для создания вашего текущего времени и целевого времени. Затем используйте функцию diff() объекта DateTime, чтобы получить разницу, и отформатируйте ее как «00:00:00».

т.е.:

 $now = new DateTime(); $target = DateTime::createFromFormat('H:i:s', "01:30:00"); $difference = $now->diff($target); echo $difference->format("%H:%I:%S"); 

Вывод :

00:57:48

Надеюсь, поможет.

Вот ваш ответ:

 <?php $difference = time()-strtotime($gametime); // You can retrieve the difference as time echo $currentstampedtime = date("H:i:s", $difference); ?> 

ОБНОВИТЬ

Другое решение

 <?php function get_time_difference($time1, $time2) { $time1 = strtotime("1980-01-01 $time1"); $time2 = strtotime("1980-01-01 $time2"); if ($time2 < $time1) { $time2 += 86400; } return date("H:i:s", strtotime("1980-01-01 00:00:00") + ($time2 - $time1)); } echo get_time_difference("10:25:30", "22:40:59"); // 12:15:29 ?>