Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Medan Mikrosaat Memaparkan 000000 Apabila Memformat Tarikh dalam m-d-Y H:i:s.u daripada Milidetik?
Dalam pertanyaan ini, objektifnya adalah untuk memformat rentetan tarikh dalam format "m-d-Y H:i: s.u" daripada cap waktu Unix yang diberikan dalam milisaat. Walau bagaimanapun, hasilnya terus memaparkan 000000 dalam medan mikrosaat.
<code class="php">$milliseconds = 1375010774123; $d = date("m-d-Y H:i:s.u", $milliseconds/1000); print $d;</code>
Output:
07-28-2013 11:26:14.000000
Untuk menyelesaikan isu ini, format input "U.u" boleh digunakan:
<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true)); echo $now->format("m-d-Y H:i:s.u");</code>
Output:
04-13-2015 05:56:22.082300
Pendekatan ini menggunakan penentu format berikut daripada manual PHP:
Adalah penting untuk ambil perhatian bahawa kaedah createFromFormat() biasanya menggunakan zon waktu tempatan jika tidak disediakan secara jelas. Walau bagaimanapun, memandangkan microtime() mengembalikan bilangan saat yang berlalu sejak Unix Epoch dalam UTC, objek DateTime secara tersirat dimulakan kepada UTC.
Jika memaparkan masa untuk zon waktu tertentu diperlukan, ia mesti ditetapkan menggunakan setTimeZone() selepas penciptaan DateTime awal:
<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
Untuk memasukkan rentetan tarikh yang diformat ke dalam MySQL, format hendaklah diubah suai kepada:
<code class="php">format("Y-m-d H:i:s.u")</code>
Atas ialah kandungan terperinci Mengapa Medan Mikrosaat Memaparkan 000000 Apabila Memformat Tarikh dalam m-d-Y H:i:s.u daripada Milidetik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!