Rumah > Artikel > pembangunan bahagian belakang > Mengapakah kod PHP saya mengembalikan "Disember" dan bukannya "Ogos" apabila menukar nombor bulan kepada namanya?
Tukar Nombor kepada Nama Bulan dalam PHP
Kod PHP anda cuba menukar nombor bulan (8) kepada nama bulan yang sepadan ( "Ogos") menggunakan fungsi date(). Malangnya, kod itu mengembalikan "Disember" dan bukannya "Ogos". Ini kerana $monthNum telah dipadatkan dengan sifar pendahuluan ("08") sebelum dihantar ke fungsi strtotime().
Penyelesaian Disyorkan Menggunakan Objek DateTime
Untuk manipulasi tarikh/masa yang tepat dan terkini, adalah sangat disyorkan untuk menggunakan objek DateTime. Berikut ialah versi kod anda yang dipertingkat menggunakan kelas DateTime:
<code class="php">$monthNum = 8; $dateObj = DateTime::createFromFormat('!m', $monthNum); $monthName = $dateObj->format('F'); // August</code>
Penyelesaian Alternatif untuk Versi PHP Lama
Jika anda tidak boleh menggunakan objek DateTime, anda boleh mencipta cap waktu menggunakan fungsi mktime() dan hantarkannya ke fungsi date():
<code class="php">$monthNum = 8; $monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // August</code>
Di sini, mktime(0, 0, 0, $monthNum, 10) mencipta cap waktu yang mewakili hari ke-10 bulan yang diberikan. Penentu format 'F' untuk date() mengembalikan nama bulan penuh.
Atas ialah kandungan terperinci Mengapakah kod PHP saya mengembalikan "Disember" dan bukannya "Ogos" apabila menukar nombor bulan kepada namanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!