strtotime() Bergelut dengan Format dd/mm/YYYY
Apabila bekerja dengan thestrtotime()fungsi, adalah penting untuk mengetahuinya had format tarikh. Walaupun ia menyokong pelbagai format, ia goyah apabila berurusan dengan format dd/mm/YYYY.
Penyelesaian: Tukar dd/mm/YYYY kepada YYYY-mm-dd
Untuk menyelesaikan isu ini dan menukar tarikh dalam format dd/mm/YYYY kepada YYYY-mm-dd, pertimbangkan kaedah ringkas berikut:
$date = '25/05/2010'; $date = str_replace('/', '-', $date); echo date('Y-m-d', strtotime($date));
Output:
2010-05-25
strtotime() Dokumentasi
Mengikut thestrtotime ()dokumentasi, tarikh dalam format m/h/y atau d-m-y adalah ditafsirkan berdasarkan pemisah yang digunakan. Jika pemisah ialah garis miring (/), format m/d/y Amerika diandaikan. Jika pemisah ialah sengkang (-) atau titik (.), format d-m-y Eropah diandaikan.
Dalam kes kami, memandangkan dd/mm/YYYY menggunakan sengkang sebagai pemisah, ia tidak mematuhi kepada sama ada format yang disokong. Oleh itu, langkah penukaran menggunakan str_replace() diperlukan untuk menukar tarikh kepada format d-m-y yang diterima sebelum menggunakan strtotime().
Atas ialah kandungan terperinci Mengapa `strtotime()` Gagal dengan dd/mm/YYYY dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!