0
votes

Comparez DateTime maintenant à ce jour au format ("2019-01-01 00: 00.000")

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: xxx

jusqu'à présent, j'ai fait ceci: xxx

mais quand il essaie de comparer je suis toujours faux, si c'est vrai ou pas. Donc, ils ne comparent pas correctement.

Mes fonctionnent maintenant ont clairement besoin de modifier pour la définir sur "2019-01-01 00: 00: 00.000" format. Comme pour le moment, il imprime comme 2019-01-15 00: 00: 00.000000 "," Timezone_type ": 3," Timezone ":" Europe \ / London au lieu de

Toute aide convertir ma variable de $ maintenant en "2019-01-01 00: 00: 00.000" serait très appréciée


5 commentaires

Commencez par var_dump ($ DatabaseDateTetime);


Est $ DatabaseDateTeTime 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


4 Réponses :


0
votes
  • Comparez l'horodatage Vous pouvez le faire: Si (nouvelle DateTime ($ DatabaseDateTetime)> $ maintenant) { } else {} Convertir $ DatabasedateTeTime à une instance DateTime à titre de comparaison.
  • Si vous souhaitez convertir $ maintenant maintenant au format comme "2019-01-01 00: 00: 00.000" Vous pouvez essayer $ maintenant-> format ('ymd h: i: S.V ')

0 commentaires

0
votes

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) {
    ...
}


0 commentaires

0
votes

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);


0 commentaires

0
votes

à l'aide de 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.

Convertir donc $ DatabasedateTetime en chaîne. P>

i utilisé p> xxx pré>

maintenant je peux comparer comme p>

if ($Ddate > $now){...


0 commentaires