2016-08-08 23 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>'; 

gibt es einen Tage $ die Null gibt, aber es scheint es nur knapp sein Ziel Ausgang eines exakten Null, weil ich Zeichen überprüfen sehen didnt ...Differenz Tage zwischen zwei Terminen

mir wirklich nicht wissen, was falsch ...

i verwendet

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

i versucht $ days = intval ($ diff/86400);

seine genauen ZERO Rückkehr aber ich weiß nicht, warum der Ausgang seine kleiner als Null

dies ist der Ausgang ...

$ Tage SAGEN ... die Anzahl an Ende die Ausgabe von ist

enter image description here enter image description here

PLEASE HELP ....

+0

Was ist das Format '$ row-> Released_Date'? –

+0

seine DATE TIME sir ... und das Verpflichtungsdatum ist in DATE – user6689924

Antwort

0

Sie zuweisen $days=0 Sie müssen == Operator zu vergleichen,

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

Eine weitere Sache, die Sie gerade strtotime einziges Mal verwenden kann den Unterschied wie zu bekommen,

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

Aktualisiert müssen Sie den anderen Teil umschließen in () sonst wird es nicht das Ergebnis wie erwartet zurückgeben,

$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

ich tat dies bereits Sir, aber es macht alle Ausgaben zu CHECK ... – user6689924

+0

Zeig mir deine '$ CommitmentDate' und' $ row-> Released_Date' –

+0

sir Ich tat dies $ diff = strtotime (Datum ("Ymd", strtotime ($ row-> Released_Date))) - strtotime (Datum ("Ymd", strtotime ($ CommitmentDate))); weil das RELEASED_DATE ist in Datum Zeit ... und das $ commitmentDate ist nur ein Datum – user6689924

0

Versuchen Sie, diese

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

Quelle: http://php.net/manual/en/datetime.diff.php

Verwandte Themen