Cela me rend très confus, peut-être que c'est quelque chose de simple que je ne vois pas. Si je veux voir si une date est dans le passé d'aujourd'hui, je devrais être capable de faire quelque chose comme ça?
if( $league->date_start <= Carbon::now() ){
$join = false;
$message = 'Sorry, the league has already started';
}
si je vider les dates son
$league->date_start = 2017-07-31 00:00:00
Carbon::now() = 2017-11-01 16:29:27
$league->date_start
est une date protégée donc c'est une instance carbone
Mais cela ne fonctionne pas, si je le change en $league->date_start >= Carbon::now()
cela fonctionne et ne me laisse pas rejoindre. Je sais que la "ligue" date de début est dans le passé, donc il ne devrait pas être $league->date_start <= Carbon::now()
?????
La méthode Carbon isPast
intégrée vous permet d'utiliser:
$league->date_start->isPast()
déterminer si la date est passée ou non
Essayez d'utiliser if ($league->date_start->diffInSeconds() >= 0)
. La méthode diffInSeconds
renvoie la différence entre l'heure actuelle et votre instance carbone.
Voici un exemple de sortie de bricoler -
>>> $now = \Carbon\Carbon::now();
=> Carbon\Carbon {#648
+"date": "2017-11-01 16:41:04.000000",
+"timezone_type": 3,
+"timezone": "UTC",
}
>>> $now->diffInSeconds();
=> 5
>>> $now->diffInSeconds();
=> 7
>>> $now->diffInSeconds();
=> 8
>>> $now->diffInSeconds();
=> 10
>>> $now->diffInSeconds() > 0
=> true
Consultez la section «Comparaison» sur docs carbone . Vous devez appeler $first->lte($second)
pour comparer deux instances de carbone.