Php - Время, оставшееся до определенного времени с текущего времени загрузки страницы
Я должен признать, что, даже не пытаясь закодировать это, этот вопрос может быть досадным для некоторых, но я очень удивлен тем, что не смог найти хороший пример в Интернете того, что я пытаюсь делать. Возможно, я просто не использую правильные ключевые слова в своих поисках.
Я пытаюсь вычислить оставшееся время (время загрузки страницы) до определенной даты и времени (скажем, среда, 11 мая 2011 г., например, 12:00) и отобразить его. Я думал, что будет довольно легко найти фрагмент, чтобы выполнить это, но пока не повезло. Есть ли у кого-нибудь примерный код, который они использовали для этого? Я не ожидаю, что кто-нибудь напишет это для меня с нуля, но если я смогу хотя бы указать в правильном направлении, это будет очень полезно.
Ответы
Ответ 1
Я бы использовал DateInterval и DateTime:
$now = new DateTime();
$future_date = new DateTime('2011-05-11 12:00:00');
$interval = $future_date->diff($now);
echo $interval->format("%a days, %h hours, %i minutes, %s seconds");
Вам понадобится версия PHP, которая, по крайней мере, 5.3, сделает это таким образом - иначе сделайте то, что рекомендует helloandre.
Ответ 2
Я думаю, это будет полезно
$startdate="2008-06-22 20:38:25";
$enddate="2008-06-29 21:38:49";
$diff=strtotime($enddate)-strtotime($startdate);
echo "diff in seconds: $diff<br/>\n<br/>\n";
// immediately convert to days
$temp=$diff/86400; // 60 sec/min*60 min/hr*24 hr/day=86400 sec/day
// days
$days=floor($temp); echo "days: $days<br/>\n"; $temp=24*($temp-$days);
// hours
$hours=floor($temp); echo "hours: $hours<br/>\n"; $temp=60*($temp-$hours);
// minutes
$minutes=floor($temp); echo "minutes: $minutes<br/>\n"; $temp=60*($temp-$minutes);
// seconds
$seconds=floor($temp); echo "seconds: $seconds<br/>\n<br/>\n";
echo "Result: {$days}d {$hours}h {$minutes}m {$seconds}s<br/>\n";
echo "Expected: 7d 0h 0m 0s<br/>\n";
echo "time isss".time();
echo $date = date('Y-m-d H:i:s')";
?>
Ответ 3
сначала вам нужно будет рассчитать разницу в секундах, используя time()
и strtotime()
. Затем вы можете перевести эти секунды в дни/часы/минуты/секунды.