J'ai une date provenant d'une base de données sous la forme de 2019-06-20 00: 00: 00.000
que j'ai besoin de comparer à l'heure actuelle .. (+ 7 jours de réinitialisation à minuit)
Spécifiquement, comme: jusqu'à présent, j'ai fait ceci: p> mais quand il essaie de comparer je suis toujours faux, si c'est vrai ou pas. Donc, ils ne comparent pas correctement. P> Mes fonctionnent maintenant ont clairement besoin de modifier pour la définir sur Toute aide convertir ma variable de $ maintenant en "2019-01-01 00: 00: 00.000" serait très appréciée p> p> "2019-01-01 00: 00: 00.000" code> format.
Comme pour le moment, il imprime comme 2019-01-15 00: 00: 00.000000 "," Timezone_type ": 3," Timezone ":" Europe \ / London code> au lieu de p>
4 Réponses :
Si (nouvelle DateTime ($ DatabaseDateTetime)> $ maintenant) {
}
else {} code>
Convertir $ DatabasedateTeTime code> à une instance DateTime à titre de comparaison. LI>
- Si vous souhaitez convertir
$ maintenant maintenant code> au format comme "2019-01-01 00: 00: 00.000" Vous pouvez essayer $ maintenant-> format ('ymd h: i: S.V ') CODE> LI>
ul> Essayez de créer un objet DateTime code> de la chaîne, qui provient de la base de données avant la comparaison. $time = strtotime($databasedatetime);
$databasetimeFormatted = date('Y-m-d H:i:s', $time);
if ($databasetimeFormatted > $now) {
...
}
Il existe une méthode CreateFromFormat for \ DateTime: http://php.net/ Manuel / FR / DateTime.createfromFormat.php
<?php
$date = \DateTime::createFromFormat("Y-m-d H:i:s.u", "2019-06-20 00:00:00.000");
$now = new \DateTime();
var_dump($date,$now);
var_dump($date > $now);
à l'aide de Convertir donc $ DatabasedateTetime en chaîne. P> i utilisé p> maintenant je peux comparer comme p> var_dump ($ DatabasedateTetime); code> s'avère $ maintenant code> était correctement dans DateTime mais
$ DatabasedateTeTime code> était juste une chaîne. Par conséquent, je ne pouvais donc pas comparer. if ($Ddate > $now){...
Commencez par
var_dump ($ DatabaseDateTetime); code>Est
$ DatabaseDateTeTime code> une chaîne ou un objet DateTime?Du Var_Dump .. Cela ressemble à sa chaîne: chaîne (23) "2020-01-11 00: 00: 00.000"
Donc, convertissez-le en objet DateTime et comparez ces objets.
Utilisé: $ ddate = date_create ($ DatabasedateTetime); date_format ($ ddate, "y / m / d h: i: s.v"); & maintenant, cela se compare parfaitement! Merci