Maison  >  Article  >  développement back-end  >  Pourquoi le champ Microsecondes affiche-t-il 000000 lors du formatage des dates en m-d-Y H:i:s.u à partir de millisecondes ?

Pourquoi le champ Microsecondes affiche-t-il 000000 lors du formatage des dates en m-d-Y H:i:s.u à partir de millisecondes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 19:52:30514parcourir

Why is the Microseconds Field Displaying 000000 When Formatting Dates in m-d-Y H:i:s.u from Milliseconds?

Obtention du format de date m-d-Y H:i:s.u à partir de millisecondes

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

Solution

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 :

  • U : Secondes depuis l'époque Unix
  • u : Microsecondes

Fuseau horaire et microtime()

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>

Saisie dans MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn