Laravel Carbon subtrahiert Tage vom aktuellen Datum

Lesezeit: 2 Minuten

Benutzer-Avatar
Kosmoloc

Ich versuche, Objekte aus Modell “Benutzern” zu extrahieren, deren created_at Datum war mehr als 30 Tage ab heute.

Carbon::now() ==> Ich möchte als ==> Carbon::now() – 30days

$users = Users::where('status_id', 'active')
               ->where( 'created_at', '<', Carbon::now())
               ->get();

Wie kann dies erreicht werden?

Verwenden subDays() Methode:

$users = Users::where('status_id', 'active')
           ->where( 'created_at', '>', Carbon::now()->subDays(30))
           ->get();

  • Sind Sie sicher, dass Sie „<“ in „>“ ändern, um Benutzer zu erhalten, die vor mehr als 30 Tagen erstellt wurden?

    – ChrisForence

    13. Dezember 2016 um 13:26 Uhr


  • Meine Bedingung ist, dass das aktuelle Datum mehr als 30 Tage vom aktuellen Datum entfernt ist. Ich denke, diese Logik erledigt die Aufgabe für mich

    – Kosmoloc

    13. Dezember 2016 um 13:28 Uhr

  • Schön, dass es geholfen hat. ) @ChrisForrence ja, wenn ich es verwenden würde <würde es alle zuvor erstellten Benutzer zurückgeben now minus 30 days Punkt.

    – Alexey Mezenin

    13. Dezember 2016 um 13:29 Uhr

  • @AlexeyMezenin Das ist es, wonach der ursprüngliche Fragesteller sucht; Am Beispiel von heute (13. Dezember) wären „in mehr als 30 Tagen ab heute“ Benutzer, die vor dem 13. November erstellt wurden.

    – ChrisForence

    13. Dezember 2016 um 13:32 Uhr

  • Ich schätze seine more meint later hier. Ebenfalls Carbon::now() ==> I want as ==> Carbon::now() - 30days erklärt ziemlich genau, was OP will.

    – Alexey Mezenin

    13. Dezember 2016 um 13:37 Uhr

Ab Laravel 5.6 können Sie verwenden woDatum:

$users = Users::where('status_id', 'active')
       ->whereDate( 'created_at', '>', now()->subDays(30))
       ->get();

Sie haben auch woMonat / woTag / woJahr / woZeit

  • Ich mag dieses, da es den now()-Helfer verwendet.

    – Luciano Fantuzzi

    5. Februar um 15:01 Uhr

Sie können immer verwenden strtotime bis minus der Anzahl der Tage ab dem aktuellen Datum:

$users = Users::where('status_id', 'active')
           ->where( 'created_at', '>', date('Y-m-d', strtotime("-30 days"))
           ->get();

  • könnte es schaffen date('Y-m-d 00:00:00', strtotime("-30 days") ordentlicher zu sein

    – tristanbailey

    29. Januar 2021 um 9:05 Uhr

1358160cookie-checkLaravel Carbon subtrahiert Tage vom aktuellen Datum

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy