Warum zeigt das Mikrosekundenfeld 000000 an, wenn Datumsangaben in m-d-y H:i:s.u aus Millisekunden formatiert werden?

Mary-Kate Olsen
Freigeben: 2024-10-23 19:52:30
Original
512 Leute haben es durchsucht

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

Datumsformat m-d-Y H:i:s.u aus Millisekunden abrufen

In dieser Abfrage besteht das Ziel darin, eine Datumszeichenfolge im Format „m-d-Y H:i: s.u“ aus einem Unix-Zeitstempel, angegeben in Millisekunden. Das Ergebnis zeigt jedoch weiterhin 000000 im Mikrosekundenfeld an.

<code class="php">$milliseconds = 1375010774123;
$d = date("m-d-Y H:i:s.u", $milliseconds/1000);
print $d;</code>
Nach dem Login kopieren

Ausgabe:

07-28-2013 11:26:14.000000
Nach dem Login kopieren

Lösung

Um dieses Problem zu beheben, Das Eingabeformat „U.u“ kann verwendet werden:

<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true));
echo $now->format("m-d-Y H:i:s.u");</code>
Nach dem Login kopieren

Ausgabe:

04-13-2015 05:56:22.082300
Nach dem Login kopieren

Dieser Ansatz nutzt die folgenden Formatspezifizierer aus dem PHP-Handbuch:

  • U: Sekunden seit der Unix-Epoche
  • u: Mikrosekunden

Zeitzonen und Mikrozeit()

Es ist wichtig zu beachten, dass die Die Methode createFromFormat() verwendet normalerweise die lokale Zeitzone, sofern diese nicht explizit angegeben wird. Da microtime() jedoch die Anzahl der seit der Unix-Epoche verstrichenen Sekunden in UTC zurückgibt, wird das DateTime-Objekt implizit auf UTC initialisiert.

Wenn die Anzeige der Zeit für eine bestimmte Zeitzone erforderlich ist, muss diese festgelegt werden Verwenden von setTimeZone() nach der ersten DateTime-Erstellung:

<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
Nach dem Login kopieren

Eingabe in MySQL

Um die formatierte Datumszeichenfolge in MySQL einzugeben, sollte das Format wie folgt geändert werden:

<code class="php">format("Y-m-d H:i:s.u")</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum zeigt das Mikrosekundenfeld 000000 an, wenn Datumsangaben in m-d-y H:i:s.u aus Millisekunden formatiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!