Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `tarikh('F')` Mengembalikan "Disember" Apabila Diberi "08" sebagai Input Bulan dalam PHP?

Mengapakah `tarikh('F')` Mengembalikan "Disember" Apabila Diberi "08" sebagai Input Bulan dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-05 09:34:02275semak imbas

Why Does `date('F')` Return

Menukar Nombor kepada Nama Bulan dalam PHP

Dalam percubaan untuk menukar nilai bulan berangka kepada nama yang sepadan menggunakan PHP, kod berikut telah bekerja:

<code class="php">$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));

echo $monthName;</code>

Walau bagaimanapun, bukannya mengembalikan nama bulan yang dijangkakan (cth., Ogos), ia tersalah memaparkan "Disember." Siasatan lanjut mendedahkan bahawa $result["month"] ditetapkan kepada 8 dan fungsi sprintf menambah sifar pendahuluan, menghasilkan nilai "08."

Penyelesaian Disyorkan

Untuk versi PHP moden (>= 5.2), kaedah pilihan ialah menggunakan objek DateTime untuk pengiraan tarikh/masa. Berikut ialah penyelesaian yang dipertingkatkan:

<code class="php">$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March</code>

The ! aksara pemformatan menetapkan semula tarikh kepada zaman Unix, dan aksara format m mewakili nilai bulan angka dengan sifar pendahuluan.

Penyelesaian Alternatif

Untuk versi PHP yang lebih lama, pendekatan alternatif ialah menggunakan mktime() untuk mencipta cap masa:

<code class="php">$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>

Ingat, jika anda lebih suka nama bulan yang disingkatkan (cth., Mar), cuma gantikan 'F' dengan 'M'. Pilihan pemformatan terperinci boleh didapati dalam dokumentasi manual PHP.

Atas ialah kandungan terperinci Mengapakah `tarikh('F')` Mengembalikan "Disember" Apabila Diberi "08" sebagai Input Bulan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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