2016-04-14 15 views
1

Wie kann ich herausfinden, ob das Verfallsdatum weniger als 7 Tage ist?Finden, ob das Datum weniger als 7 Tage ist

Das Verfallsdatum Format sieht wie folgt aus: 2016-04-13

Ich habe einen Code hier, aber es funktioniert nicht:

if($record->$c < date('Y-m-d', strtotime('-7 day'))){ 
    // this is true 
} 

Hoffnung mir jemand helfen könnte.

Antwort

5

konvertieren einfach beide Geräte auf Unix-Zeitstempel, Ihre Subtraktion machen, dann teilen sie durch 86400:

$expiry_date = '2016-04-18'; 
$today = time(); 
$interval = strtotime($expiry_date) - $today; 
$days = floor($interval/86400); // 1 day 
if($days < 7) { 
    echo 'less'; 
} 

Oder eine andere Art und Weise mit DateTime Klassen:

$expiry_date = '2016-04-18'; 
$expiry_date = new DateTime($expiry_date); 
$today = new DateTime(); 
$interval = $today->diff($expiry_date); 
$day = $interval->format('%r%a'); 
if($day < 7) { 
    echo 'less'; 
} 

Beispiel Bedingungen:

$expiry_date = '2016-04-18'; 
$today = time(); 
$interval = strtotime($expiry_date) - $today; 
$day = floor($interval/86400); // 1 day 
if($day >= 1 && $day < 7) { 
    echo 'between 1 - 7 days'; 
} elseif($day <= 0) { 
    echo 'deadline'; 
} else { 
    echo 'soon'; 
} 

Ändern/ändern Sie es einfach je nachdem, was Sie tun möchten.

+0

ich versuchte den letzteren Code @Ghost, es scheint zu arbeiten, dass es weniger auf das zukünftige Datum, das weniger als 7 Tage ab jetzt Echo ist, aber es erscheint auch das Echo weniger auf das letzte Datum in 7 Tagen ab jetzt . – zen

+0

@zen machen Sie einfach eine andere Bedingung dafür, wenn Sie darüber hinausgehen, wenn Sie über das Ablaufdatum hinaus sind. Ich illustrierte nur den grundlegenden Vergleich, vergleichen Sie Unix-Zeitstempel oder verwenden Sie datetime – Ghost

+0

@zen fügen Sie einfach wie zwischen 1 und 7, dann, wenn seine negative nur sagen, seine letzten Verfallsdatum oder etwas – Ghost

0

empfehlen date_diff() Funktion zu erforschen:

http://php.net/manual/en/function.date-diff.php

Meine Herausforderung war anders:

// Count days is date range 
function count_days_in_range($date1, $date2) { 

    $date1  = date_create($date1); 
    $date2  = date_create($date2); 

    $interval = date_diff($date1, $date2); 
    $days  = $interval->days; 

    return $days; 
} 

Aber diese Funktion Ihr Leben viel einfacher machen wird.

Verwandte Themen