Mengapa Medan Mikrosaat Memaparkan 000000 Apabila Memformat Tarikh dalam m-d-Y H:i:s.u daripada Milidetik?

Mary-Kate Olsen
Lepaskan: 2024-10-23 19:52:30
asal
512 orang telah melayarinya

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

Mendapatkan Format Tarikh m-d-Y H:i:s.u daripada Millisaat

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>
Salin selepas log masuk

Output:

07-28-2013 11:26:14.000000
Salin selepas log masuk

Penyelesaian

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>
Salin selepas log masuk

Output:

04-13-2015 05:56:22.082300
Salin selepas log masuk

Pendekatan ini menggunakan penentu format berikut daripada manual PHP:

  • U: Saat sejak Zaman Unix
  • u: Mikrosaat

Zon Masa dan mikromasa()

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>
Salin selepas log masuk

Memasukkan ke dalam MySQL

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!