2016-08-08 4 views
-1
$diff = strtotime(date("Y-m-d",strtotime($row->Released_Date))) - strtotime(date("Y-m-d",strtotime($CommitmentDate))); 
$days = intval(round($diff/86400)); 

$s = $days > 1 ? 's' : ''; 

$status = $days > 0 ? '<i class="fa fa-exclamation" original-title="Day'.$s.' lapsed - '.$days.'<br><i>'.date("F d, Y",strtotime($CommitmentDate)).'</i>"></i>' : 
      $days = 0 ? '<i class="fa fa-check" original-title="RELEASED ON TIME<br><i>'.date("F d, Y",strtotime($CommitmentDate)).'</i>"></i>' : 
     '<i class="fa fa-star" original-title="RELEASED BEFORE COMMITMENT DATE<br><i>'.date("F d, Y",strtotime($CommitmentDate)).'<br>'.$days.'</i>"></i>'; 

есть один $ дней что возвращает нулевой но, кажется, оно не выводить точные нулевой, потому что я не видел проверить знак ...разницы дней между двумя датами

я действительно не знаю, что случилось ...

я использовал

$days = intval(round($diff/86400)); 
$days = int(round($diff/86400); 

я пытался $ days = intval ($ diff/86400);

его возвращение точно ZERO, но я не знаю, почему выход ГОВОРЯТ ЕЕ МЕНЕЕ ZERO

это выход ... число на конце есть выход $ дней ...

enter image description here enter image description here

ПОМОГИТЕ ....

+0

Что такое формат '$ row-> Released_Date'? –

+0

его ДАТА ВРЕМЯ сэр ... и дата вступления в силу находится в DATE – user6689924

ответ

0

Вы назначаете $days=0 вы должны использовать == оператор для сравнения,

$days == 0 ? '<i class="fa fa-check" original-title="RELEASED ON TIME.... 

Еще одна вещь, которую вы можете использовать только один раз strtotime, чтобы получить разницу как,

// no need to convert it in date then again in strtotime 
$diff = strtotime($row->Released_Date) - strtotime($CommitmentDate); 

Обновлено, вам нужно приложить еще часть в () в противном случае он не вернет результат так, как ожидалось,

$status = $days > 0 ? '<i class="fa fa-exclamation" original-title="Day'.$s.' lapsed - '.$days.'<br><i>'.date("F d, Y",strtotime($CommitmentDate)).'</i>"></i>' : 
     ($days == 0 ? '<i class="fa fa-check" original-title="RELEASED ON TIME<br><i>'.date("F d, Y",strtotime($CommitmentDate)).'</i>"></i>' : 
    //--^ start enclosing here, with $days == 0 condition 
    '<i class="fa fa-star" original-title="RELEASED BEFORE COMMITMENT DATE<br><i>'. 
    date("F d, Y",strtotime($CommitmentDate)).'<br>'.$days.'</i>"></i>'); 
               // -- to here -----------^ 
+0

Я уже сделал это сэр, но он выводит все данные в CHECK ... – user6689924

+0

Покажите мне свои '$ CommitmentDate' и' $ row-> Released_Date' –

+0

сэр Я сделал это $ diff = strtotime (date ("Ymd", strtotime ($ row-> Released_Date))) - strtotime (date ("Ymd", strtotime ($ CommitmentDate))); , потому что RELEASED_DATE находится в дате времени ... и $ commitDate - это просто DATE – user6689924

0

Попробуйте

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
$days = $interval->format('%a'); 
$daySec = $day * 86400; 

Источник: http://php.net/manual/en/datetime.diff.php