2016-12-16 3 views
3

Hallo allerseits Ich habe ein ArrayVergleichen Sie zwei Array mit Laravel

$dates = [2016-11-02,2016-11-05,2016-11-11,2016-11-15,2016-11-16] 

in dieser Ich bin immer alle Termine jetzt ich mit $currentdate (2016-12-16) wie diese

if($dates <= $currentdate){ 
    echo "true"; 
} else{ 
    echo "false"; 
} 

Jede Hilfe wird vergleichen wollen sehr geschätzt .

Antwort

1

über andere Antworten nicht sicher, aber wenn Sie versuchen, alle Termine zu überprüfen, benutzen Sie bitte den Code unten verwenden ... Sollte funktionieren :)

$isLess = false; 
$currentDate = Carbon::now(); 

foreach($dates as $data) { 
    if(Carbon::parse($date)->lte(currentDate)){ 
    $isLess = true; 
    break; 
    } 
} 

echo $isLess; 

mich in den Kommentaren wissen lassen, wenn Sie Gesicht Problem :)

+0

Ich habe $ dates [] möchte jetzt das aktuelle Datum vergleichen wie dieses $ mytime = Carbon :: now(); \t $ time = $ mytime-> toDateString(); –

+0

@RahulSingh Dies funktioniert für '$ dates' als Array. und warum willst du 'Carbon :: now()' in einen 'DateString' konvertieren? Das wird zu einem String-Vergleich führen ... – prateekkathal

0

Da Sie Laravel verwenden, können Sie das tun, mit Carbon:

if (Carbon::now()->gte(Carbon::parse($oneDate)) 
+0

I Array beide von Daten und aktuelle Datum bin auch, wie kann ich passieren Array in if (Carbon :: parse ($ date) < Carbon :: jetzt()) danke –

+0

Iteriere zuerst über dein Array und vergleiche dann. –

0

Sie es Carbon analysieren kann und verwenden seine Vergleichsfunktion

$date = Carbon::parse($date); 
if($date->lte(Carbon::today())){ 
// your code 
} 

Hier lte() bedeutet weniger als gleich zu

, um mehr über Vergleich Betreiber von Kohlenstoff zu besuchen http://carbon.nesbot.com/docs/#api-comparison

-1

in einer Linie (wenn auch nicht der hübscheste)

if (collect(collect($dates)->filter(function($date) use($currentDate) { return Carbon::parse($date)->lte($currentDate); }))->count > 0) { 

}