2016-04-02 23 views
-1

条件が動作しない場合、私はこの条件は時間のために働いていない場合は、日

<?php       
 
    $start = $row['t_started_on']; 
 
    $due = date('Y-m-d H:i:s'); 
 
    $start_date = new DateTime($start); 
 
    $end_date = new DateTime($due); 
 
    $interval = $start_date->diff($end_date); 
 
    echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 
 
// upto here i got correct answer. 
 
    if($interval->h <="24"){ 
 
    $result = $interval->h." Hours";// i want like this 10 Hours ago 
 
}else if ($interval->d <="30")){ 
 
    $result = $interval->d." Days";// i want like this 25 Days ago 
 
}else{ 
 
$result = $interval->m." Months";// i want like this 10 Months ago 
 
} 
 
    ?>

+0

があれば、もしそうでなければ、他の変数を混在させることが可能ですしてみてください?問題の内容を指定していません。しかし、 "else if"から "else"を削除しようとする – Andreas

答えて

0

のためであれば条件をWITEする方法がわからない、このコードから、コードの下を参照してください。この

<?php       
    $start = $row['t_started_on']; 
    $due = date('Y-m-d H:i:s'); 
    $start_date = new DateTime($start); 
    $end_date = new DateTime($due); 
    $interval = $start_date->diff($end_date); 
    echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 
// upto here i got correct answer. 
    if($interval->h <= 24){ // Removed quotes 
     $result = $interval->h." Hours";// i want like this 10 Hours ago 
    } 
    else if ($interval->d <= 30)){ // Removed quotes 
     $result = $interval->d." Days";// i want like this 25 Days ago 
    } 
    else{ 
     $result = $interval->m." Months";// i want like this 10 Months ago 
    } 
    ?> 
+0

$ statは正しく動作していませんが、1ヶ月前に選択していますが、18時間後に出力されます –

0
Hi, 

    One things that we have to check ,is t_started_on coming in Y-m-d H:i:s format ?. 

    Please try this.it should work. 
    <?php       
     $start = $row['t_started_on']; 
     $due = date('Y-m-d H:i:s'); 
     $start_date = new DateTime($start); 
     $end_date = new DateTime($due); 
     $interval = $start_date->diff($end_date); 
     echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 
    // upto here i got correct answer. 
     if($interval->h <= 24){ 
     $result = $interval->h." Hours";// i want like this 10 Hours ago 
    }else if ($interval->d <= 30){ 
     $result = $interval->d." Days";// i want like this 25 Days ago 
    }else{ 
     $result = $interval->m." Months";// i want like this 10 Months ago 
    } 
    ?> 

Here's example. 
$start = '2016-03-02 12:00:00 PM'; 
    $due = date('Y-m-d H:i:s'); 
    echo $due; 
    $start_date = new DateTime($start); 
    $end_date = new DateTime($due); 
    $interval = $start_date->diff($end_date); 
    echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 
// upto here i got correct answer. 
    if($interval->h <= 24){ 
     $result = $interval->h." Hours";// i want like this 10 Hours ago 
    }else if ($interval->d <= 30){ 
     $result = $interval->d." Days";// i want like this 25 Days ago 
    }else{ 
    $result = $interval->m." Months";// i want like this 10 Months ago 
    } 

i got this result : Result 0 years, 0 months, 30 days 21 Hours,it looks liek correct result. 

Note : Result may be vary due to timezone. 
関連する問題