Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-23 19:52:30
original
595 Les gens l'ont consulté

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>
Copier après la connexion

Sortie :

07-28-2013 11:26:14.000000
Copier après la connexion

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>
Copier après la connexion

Sortie :

04-13-2015 05:56:22.082300
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal