Я закодировал простой таймер обратного отсчета PHP, используя этот код:
list($date,$time)=explode(" ",$compounddate); list($thour,$tminute,$tsecond)=explode(":",$time); list($tyear,$tmonth,$tday)=explode(":",$date); $date=str_replace(":","/",$date); $target = mktime($thour,$tminute,$tsecond,$tmonth,$tday,$tyear) ; $today = time () ; $difference =($target-$today) ; $days = floor(abs($difference/86400)); $hours = floor(abs($difference%86400/3600)); $minutes =floor(abs($difference%3600/60)); $seconds = floor(abs($difference%60)); $date = date("F d, Y ",strtotime($date)); $time = date("g:i:s A",strtotime($time)); $past_future=""; $boolpast_future=true; if($difference<0) { $past_future="<strong> Time since ".$date." at ".$time.": </strong>"; $boolpast_future=false; } else { $past_future="<strong> Countdown to ".$date." at ".$time.": </strong>"; $boolpast_future=true; } }
($ thour, $ tminute и т. д. означает целевой час, целевую минуту …)
Однако этот код не вычисляет время обратного отсчета должным образом. Как это исправить? Благодаря!
date_default_timezone_set('Asia/Tokyo'); $target = new DateTime('2011-06-01 05:00:00'); $now = new DateTime; $diff = $target->diff($now); if ($target > $now) { echo $diff->format('%a days, %h hours, %i minutes to go'); } else { echo $diff->format('%a days, %h hours, %i minutes too late'); }