2 votes

Laravel ne renvoie aucun résultat lorsqu'on travaille avec un champ de type datetime

J'ai donc cette question :

Report::whereDate('date', '=', Carbon::now()->format('Y-m-d H:i'))->get();

Les dates sont stockées comme ceci par exemple :

2017-01-08 10:00:00

Mais je n'obtiens jamais aucun résultat, cela a-t-il un rapport avec les secondes ? Si oui, comment puis-je éviter cela et obtenir mes résultats ? Peut-être en utilisant un mutateur pour ignorer les secondes ?

PS. Je veux obtenir les résultats à partir de l'heure spécifiée, car je l'utilise pour une tâche planifiée (commande). Les e-mails doivent être envoyés à des heures précises, et les heures varient :)

1voto

Parithiban Points 1058

Vous pouvez essayer avec OùRaw

$format = Carbon::now()->format('Y-m-d H:i');
Report::whereRaw("date_format(date, '%Y-%m-%d %H:%i ')  = '$format'")

0voto

Alexey Mezenin Points 86781

Ajouter date a $dates dans le Report modèle :

protected $dates = ['date'];

Vous avez dit que vous vouliez vérifier l'heure, alors faites-le :

Report::where('date', Carbon::now())->get();

0voto

Hardist Points 805

J'ai trouvé la solution, je ne voulais pas utiliser un booléen dans ma base de données pour vérifier si un e-mail avait été envoyé ou non pour un rapport spécifique, car il s'agit de rapports quotidiens. Mais je vais créer une autre tâche cron pour réinitialiser ces booléens à la fin de la journée.

-1voto

Gayan Points 2314

Je crois que j'ai mal compris la question.

Le moyen le plus pratique de faire correspondre la date et l'heure est d'utiliser Carbon.

Dans votre modèle, ajoutez la ligne suivante.

protected dates = ['date'];

En faisant cela, vos dates seront sauvegardées comme instance de carbone.

Maintenant, vous pouvez faire

Report::whereDate('date', Carbon::now())->get();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X