2016-05-01 26 views
2

Ich möchte Datensätze abrufen, die älter als 2 Tage sind.Datum Vergleich mit Laravel 4.2

Meine aktuelle Datenbankeinträge für added_to_cart_at Feld ist nur eine Zeile vom 2016-05-01 12:23:23

I unten Code verwendet

$date = new DateTime; 
$date->modify('-2 days'); 

$formatted_date = $date->format('Y-m-d H:i:s'); 
echo $formatted_date; // prints 2016-04-29 14:27:42 

    $result = DB::table('cart_reminder')->whereDate('added_to_cart_at','<=',$formatted_date)->get(); 
    foreach ($result as $row) 
    { 
     echo $row->user_email; 
    } 

Oberhalb von where Zustand versagen sollte und 0 Datensätze zurück. Aber es holt eine Aufzeichnung. EDITED:

$result = DB::table('cart_reminder')->whereDate(\Carbon\Carbon::now()->subDays(2)->toDateString())->get(); 
    foreach ($result as $row) 
{ 
    echo $row->user_email; 
} 

druckt Fehler

production.ERROR: exception 'ErrorException' with message 'Missing argument 2 for Illuminate\Database\Query\Builder::whereDate(), called in 

Warum?

+0

Ich glaube nicht, sollten Sie 'whereDate()' hier, ganz normale 'wo()'. –

+0

geändert. immer noch druckt es E-Mail-Adresse, und Bedingung wird wahr –

+0

Da Laravel Daten gut mit Carbon arbeiten, haben Sie versucht, ein Carbon-Objekt anstelle einer formatierten Zeichenfolge übergeben? – ThePurpleK

Antwort

0

Sie geben keine Spalte an.

whereDate('added_to_cart_at', $carbon)