2014-05-09 2 views
1

저는 사람들이 특정 페이지에서 특정 기능을 수행 할 수있는 기간에 대한 카운트 다운을 만듭니다. 나는 카운트 다운을했지만, 그는 0 이하로 떨어지므로, 그는 더 부정적으로 세고있다. 당신이 두 번 비교하고 정지 시간이있는 경우 볼 수 DateTime() 사용하는 경우타이머가 작동하는지 확인하는 방법은 무엇입니까?

 
-4 days -10 h -3 m -34 s remaining to run 1210 meter 

내 카운트 다운,

$Date = "" . $groups['group_date'] . ""; 
$stopDate = date('Y-m-d H:i:s', strtotime($Date. ' +' . $periodOfRunning . 'days')); 

    <h3><?php $rem = strtotime($stopDate) - time(); 
    $day = floor($rem/86400); 
    $hr = floor(($rem % 86400)/3600); 
    $min = floor(($rem % 3600)/60); 
    $sec = ($rem % 60); 
    if($day) echo "$day days "; 
    if($hr) echo "$hr h "; 
    if($min) echo "$min m "; 
    if($sec) echo "$sec s"; 
    echo " remaining to run " . $totalDistanceToDo . " meter"; 

      ?></h3> 

답변

2

:

이 같은 카운트 다운을 인쇄하고 있습니다 과거. 일치하면 다른 메시지를 표시하십시오.

: 당신이 좀 더 복잡 할 것이다 시간 단위에 대한 0 값을 표시하지 않으려면

$now = new DateTime(); 
$stopdate = new DateTime($stopDate); 
if ($stopdate > $now) { 
    $diff = $now->diff($stopTime); 
    echo $diff->format('%d days, %h hours, %i minutes, %s seconds'); 
    echo " remaining to run " . $totalDistanceToDo . " meter"; 
} 
else { 
    // negative time. display something else 
} 

가 유의 사항 : 또한,이 얻을 수있는 둘 사이에 쉽게 간격을 받고 표시한다

$now = new DateTime(); 
$stopdate = new DateTime($stopDate); 
if ($stopdate > $now) { 
    $diff = $now->diff($stopTime); 
    if ($diff->d > 0) echo $diff->d . ' days, '; 
    if ($diff->h > 0) echo $diff->h . ' hours, '; 
    if ($diff->i > 0) echo $diff->i . ' minutes, '; 
    if ($diff->s > 0) echo $diff->s . ' seconds'; 
    echo " remaining to run " . $totalDistanceToDo . " meter"; 
} 
else { 
    // negative time. display something else 
} 
+0

나는 고마워! 나는 또한 0 일을 알지 못했다 ... 내가 그것을 떠날 때 더 깨끗해진다! – Lisa

관련 문제