Heim >Backend-Entwicklung >PHP-Tutorial >Warum zeigt das Mikrosekundenfeld 000000 an, wenn Datumsangaben in m-d-y H:i:s.u aus Millisekunden formatiert werden?
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>
Ausgabe:
07-28-2013 11:26:14.000000
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>
Ausgabe:
04-13-2015 05:56:22.082300
Dieser Ansatz nutzt die folgenden Formatspezifizierer aus dem PHP-Handbuch:
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>
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>
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!