Во-первых, хорошей идеей является явная установка часового пояса по умолчанию в вашем скрипте с использованием функции даты PHP, например:
date_default_timezone_set('Europe/London');
См. http://php.net/manual/en/function.date-default-timezone-set.php
Это обеспечивает использование всех вычислений датыправильный внутренний часовой пояс.При отображении даты обратно пользователю вы можете соответствующим образом настроить время в соответствии с его часовым поясом.
Небольшое изменение вашего примера позволяет создать две переменные с метками времени UNIX на данный момент и за 24 часа:
$now = time();
$in24hourstime = strtotime("+24 hours", $now);
Чтобы вычислить разницу, мы можем вычесть одно из другого, чтобы получить разницу в секундах:
$remaining = $in24hourstime - $now;
В нашем примере значение $ оставшегося составляет 86400 секунд.Если бы это значение было 0 или отрицательным числом, мы можем предположить, что крайний срок прошел.
if($remaining > 0) {
$hours = intval(intval($remaining) / 3600);
$minutes = intval(($remaining / 60) % 60);
$seconds = intval($remaining % 60);
echo $hours . ' hours, '.$minutes.' minutes and '.$seconds . ' seconds remaining!';
} else {
echo "Deadline has been met. No time remaining!";
}
Кроме того, использование PHP DateTime может оказаться полезным, так как, по моему мнению, оно дает много преимуществ по сравнению со встроенным временем () и date () и более простой способ работы с часовыми поясами:
См .: http://php.net/manual/en/book.datetime.php