2016-06-06 6 views
0

abgestimmt Ich möchte wissen, wie zu erkennen, ob ein Datumsbereich angepasst angegebene Bedingung:PHP erkennen, ob zwischen bestimmten Datum und jetzt() spezifizierten Zustand

Erwartete Ergebnisse:

<?php 
$start_date1 = '2016-05-06 00:00:00'; 
$start_date2 = '2016-01-06 00:00:00'; 

$result1 = is_date_range_exceeds_3_months($start_date1); 
$result2 = is_date_range_exceeds_3_months($start_date2); 
//lets say 'now' is '2016-06-06 00:00:00' 

//Expected result of $result1 = false 
//Expected result of $result2 = true 
?> 

(Bitte machen Korrektur meine Frage, wie ich denke, diese Frage ist nicht im richtigen Format/Wörter)

Vielen Dank!

+1

Werfen Sie einen Blick auf [Datetime diff] (http://php.net/manual/en/datetime.diff.php). –

+1

Mögliches Duplikat von [# 676824] (https://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php?rq=1) – Muriano

+0

@Thamilan I port Ich habe noch nichts probiert, weil ich nicht weiß, wo ich anfangen soll. Da ich von Muriano eine Antwort bekomme, kann ich anfangen. – mokalovesoulmate

Antwort

0

Sie könnten DateTime dafür verwenden.

function is_date_range_exceeds_3_months($strDate) 
{ 

    $userDate = new \DateTime($strDate); // @todo: Check if is valid 
    $checkDate = new \DateTime(); // By default date seed is now 
    $checkDate->modify('+3 months'); // Set period 

    if($userDate > $checkDate) { 
     return true; 
    } else { 
     return false; 
    } 

} 

Dies ist nur ein Tipp, tut mir leid, wenn es einige Tippfehler enthält.

Edit von OP:

function is_date_range_exceeds_x_months($month_limiter, $start_date) { 
    $userDate = new DateTime($start_date); // @todo: Check if is valid 
    $userDate = $userDate->format('Y-m-d H:i:s'); 

    $checkDate = new DateTime(); // By default date seed is now 
    $checkDate->modify('-' . $month_limiter . ' months'); // Set period 
    $checkDate = $checkDate->format('Y-m-d H:i:s'); 


    if ($userDate < $checkDate) { 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

Dein Code funktioniert ursprünglich nicht, aber ich habe ihn behoben. Bitte korrigieren Sie mich, wenn ich eine falsche Antwort auf SO bearbeiten. – mokalovesoulmate

0
<?php 
$start_date1 = '2016-05-06 00:00:00'; 
$start_date2 = '2016-01-06 00:00:00'; 

$result1 = is_date_range_exceeds_3_months($start_date1); 
$result2 = is_date_range_exceeds_3_months($start_date2); 
//lets say 'now' is '2016-06-06 00:00:00' 

function is_date_range_exceeds_3_months($start_date) 
{ 
    $lastdates=date('Y-m-d H:i:s', strtotime('-3 month')); 
    $current_dates=date("Y-m-d H:i:s"); 
    echo 'currentdate'.$current_dates.'<br/>'; 
    echo 'Lasytdate'.$lastdates.'<br/>'; 

    if (($start_date > $lastdates) && ($start_date < $current_dates)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 

} 
//Expected result of $result1 = false 
//Expected result of $result2 = true 
?> 
Verwandte Themen