Как правильно преобразовать метку времени в удобочитаемую дату? - PullRequest
1 голос
/ 18 августа 2011

у меня есть 2 отметки времени: $start_time = 1312346227; и $end_time = 1312346466; и я пытаюсь вычесть их, чтобы увидеть время между $end_time = $end_time - $start_time;

и я получаю 239.

Как правильно преобразовать это в удобочитаемую дату?

если я попытаюсь echo date("h:i:s A",$end_time); я получу 04:03:59 и это должно быть 00:03:59

есть идеи? Спасибо

Ответы [ 3 ]

4 голосов
/ 18 августа 2011

Если у вас PHP 5.3, используйте класс DateInterval.

Пример, украденный со страницы руководства на DateInterval::format():

<?php

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a will output the total number of days.
echo $interval->format('%a total days')."\n";

// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');

?>
3 голосов
/ 18 августа 2011

Вы получаете дополнительные четыре часа из-за вашего часового пояса. Помните, что метка времени unix - это количество секунд с 1970-01-01 00:00:00 UTC. Если вы (или ваш сервер) используете UTC + 4 TZ, date() неявно выполнит преобразование часового пояса в ваше местное время.

Решение? Используйте gmdate() вместо

1 голос
/ 18 августа 2011

Вам нужно правильно установить часовой пояс.http://www.php.net/manual/en/function.date-default-timezone-set.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...