2016-04-02 35 views
-1

bu koddan kod aşağıya bakın, Saatlerine çalışmıyor eğer, ben bukoşul koşul çalışmıyorsa Günleri

<?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

bir if-else if-else değişkenleri karıştırmak mümkün mü deneyin? Sorunun ne olduğunu belirtmediniz. Ama "else" den "else" i kaldırmaya çalışın – Andreas

cevap

0

için ise durumun WITE nasıl bilmiyorum Bu

<?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

düzgün çalışmıyor, $ stat, ben bir ay önce seçiyorum ama koymak 18 saat gelecek –

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.