Maison  >  Article  >  base de données  >  Comment rechercher des enregistrements dans une plage de dates dans Laravel ?

Comment rechercher des enregistrements dans une plage de dates dans Laravel ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 21:34:29956parcourir

How to Query for Records Within a Date Range in Laravel?

Laravel interrogeant des dates entre une plage de dates

Dans Laravel, vous pouvez utiliser la méthode WhereBetween pour interroger un modèle pour les enregistrements où une date ou La colonne datetime se situe dans une plage spécifiée. Ceci est utile pour des tâches telles que la récupération des enregistrements qui doivent expirer ou se renouveler dans une période donnée.

Question originale :

L'auteur a initialement recherché une requête pour sélectionner les projets dus pour se reproduire ou se renouveler dans les 7 prochains jours, en utilisant la méthode Where pour vérifier les dates supérieures à un horodatage spécifique.

Solution résolue :

Cependant, l'auteur a découvert qu'ils devaient interroger des dates supérieures à la date actuelle moins 7 jours. Ceci a été réalisé en utilisant la méthode WhereBetween comme suit :

<code class="php">$projects = Project::whereBetween('recur_at', [
    Carbon::now(),
    Carbon::now()->addWeek()
])
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();</code>

Requête améliorée :

La deuxième solution a été améliorée en utilisant la méthode Where pour enchaîner directement les conditions :

<code class="php">$projects = Project::where('recur_at', '<=', Carbon::now()->addWeek())
->where('recur_at', '!=', "0000-00-00 00:00:00")
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();</code>

Cela a simplifié la requête et supprimé le besoin de la syntaxe function(q).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn