php - время, оставшееся до определенного времени от текущего времени загрузки страницы - PullRequest
11 голосов
/ 06 мая 2011

Я должен признать, что даже не пытаясь закодировать это сам, этот вопрос может раздражать некоторых, но я очень удивлен, что не смог найти в сети хороший пример того, что я пытаюсь сделать. Возможно, я просто не использую правильные ключевые слова в своих поисках.

Я пытаюсь рассчитать оставшееся с этого момента время (время загрузки страницы) до определенной даты и времени (например, в среду, 11 мая 2011 г., 12:00 вечера) и отобразить его. Я думал, что будет довольно легко найти фрагмент, чтобы выполнить это, но пока не повезло. У кого-нибудь есть пример кода, который они использовали для достижения этой цели? Я не ожидаю, что кто-нибудь напишет это для меня с нуля, но если я смогу, по крайней мере, указать правильное направление, это было бы чрезвычайно полезно.

Ответы [ 3 ]

46 голосов
/ 06 мая 2011

Я бы использовал функции 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 рекомендует .

3 голосов
/ 28 октября 2013

Я думаю, что это будет полезно

$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')";

?>
1 голос
/ 06 мая 2011

сначала вам нужно вычислить разницу в секундах, используя time() и strtotime().Затем вы можете перевести эти секунды в дни / часы / минуты / секунды.

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