Разница во времени в PHP дает мне странное количество часов - PullRequest
0 голосов
/ 11 ноября 2011

Мой код

   $start_time= time();
   echo "<BR><BR>";
   echo "start: ".date("G:i:s",$start_time);echo "<BR>";
   echo "now: ".date("G:i:s",time());echo "<BR>";
   echo "difference: ".date("G:i:s",time()-$start_time);echo "<BR>";

   echo "<BR><BR>";
   echo time()-$start_time;
   echo "<BR><BR>";

и вывод

start: 12:03:41
now: 12:06:04
difference: 10:02:23


143

Любая идея, почему количество часов не равно 0?

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

Разница должна быть просто time () - $ start_time, чтобы указать количество секунд, необходимое для запуска скрипта.Если вы передадите его на дату, то он даст дату через 143 секунды после эпохи Unix.Сделайте формат даты 'Y / m / d G: i: s', чтобы точно увидеть, что там происходит.

1 голос
/ 11 ноября 2011

Вы пытались явно установить часовой пояс для своего скрипта?

date_default_timezone_set('UTC');
1 голос
/ 11 ноября 2011

Я думаю, вы должны использовать метку времени Unix при расчете разницы дат.

См. Ниже

$start_time= date("U", time());
sleep(5); //stops execution for 5 seconds
$endtime = date("U",time());
echo date("G:i:s",$endtime - $start_time); //Outputs 0:00:05

или что-то в этом роде для фактических различий даты и времени

 $start_time= date("U", strtotime("11/11/11 12:53"));
 $endtime = date("U",strtotime("11/11/11 12:59"));
 echo date("G:i:s",$endtime - $start_time);

Выходы 0:06:00 6 минут

...