Dans cette requête, l'objectif est de formater une chaîne de date au format "m-d-Y H:i: s.u" à partir d'un horodatage Unix donné en millisecondes. Cependant, le résultat continue d'afficher 000000 dans le champ microsecondes.
<code class="php">$milliseconds = 1375010774123; $d = date("m-d-Y H:i:s.u", $milliseconds/1000); print $d;</code>
Sortie :
07-28-2013 11:26:14.000000
Pour résoudre ce problème, le format d'entrée "U.u" peut être utilisé :
<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true)); echo $now->format("m-d-Y H:i:s.u");</code>
Sortie :
04-13-2015 05:56:22.082300
Cette approche utilise les spécificateurs de format suivants du manuel PHP :
Il est important de noter que le La méthode createFromFormat() utilise généralement le fuseau horaire local s'il n'est pas explicitement fourni. Cependant, puisque microtime() renvoie le nombre de secondes écoulées depuis l'époque Unix en UTC, l'objet DateTime est implicitement initialisé en UTC.
Si l'affichage de l'heure pour un fuseau horaire spécifique est requis, il doit être défini en utilisant setTimeZone() après la création initiale de DateTime :
<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
Pour saisir la chaîne de date formatée dans MySQL, le format doit être modifié comme suit :
<code class="php">format("Y-m-d H:i:s.u")</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!