web-dev-qa-db-fra.com

Laravel ORM, date comparer

J'utilise Laravel Framework.

Je veux toutes les lignes pour ce jour. C'est ce que j'ai essayé:

DB::table('users')->where('created_at', '>=', date('Y-m-d H:i:s'))

(champ created_at représenté dans la base de données au format: Y-m-d H:i:s).

24
user2096672

Hmmm ... il y avait une bonne réponse à cette question qui semble avoir maintenant disparu. *

C'était quelque chose comme ça:

User::where('created_at', '>=', new DateTime('today'))

Remarque: si vous placez ce code dans un fichier avec un espace de noms ou si vous utilisez ultérieurement un espace de noms, vous devez préfixer la classe DateTime d'une barre oblique inversée: new \DateTime('today').

* https://stackoverflow.com/questions/15052679/laravel-framework-how-tooget-todget-quay-queries

47
Matt Browne

date('Y-m-d H:i:s') renvoie la date de maintenant. 

Si vous voulez des résultats dès le début de la journée, vous pouvez le remplacer par date('Y-m-d').' 00:00:00'

Si vous souhaitez obtenir les résultats des dernières 24 heures, vous pouvez le remplacer par date('Y-m-d H:i:s',time()-86400) (86400 = 24 * 60 * 60).

4
Bilal Gultekin

Pour ceux qui ont seulement besoin de comparer une date sans heure, Lavarel a fourni une fonction pratique whereDate:

User::whereDate('created_at', '>=', date('Y-m-d'));

http://laraveldaily.com/eloquent-date-filtering-wheredate-and-other-methods/

3
Richard Fu

Simplement:

DB::table('users')->where('created_at', '>=', date('Y-m-d'). ' 00:00:00')

Lorsque vous obtenez toutes les lignes pour ce jour (l'heure doit être 00:00:00), assurez-vous de définir la condition de date sur date actuelle plus 00:00:00, c'est-à-dire.

date('Y-m-d'). ' 00:00:00'
0
Usama

Je sais que ce sujet est ancien, mais que quelqu'un cherche à trouver une solution à partir des moteurs de recherche. 

Vous pouvez utiliser: 

User::whereDate('created_at', '=', Carbon::today()->toDateString());

Vous pouvez visiter ce lien si vous souhaitez en savoir plus sur la comparaison des dates à Laravel en utilisant où.

Eloquent date filtering: whereDate () et d'autres méthodes

0
AboElnouR

Utilisez whereDate

$users = DB::table('users')
                ->whereDate('created_at', '2016-12-31')
                ->get();

les autres fonctions que vous pouvez utiliser sont: whereDate / whereMonth / whereDay / whereYear / whereTime

0
PHP Worm...