Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menukar Rentetan Tarikh 'y-m-d-h-i-s' kepada 'Y-m-d H:i:s' dalam PHP?
Menukar Format Tarikh dalam PHP
Anda mungkin menghadapi situasi di mana anda perlu menukar tarikh daripada satu format kepada format lain dalam PHP. Walaupun PHP menawarkan beberapa fungsi untuk manipulasi tarikh, adalah penting untuk memahami proses dan kemungkinan perangkap.
Pertimbangkan senario ini: Anda mempunyai tarikh dalam format 'y-m-d-h-i-s' dan anda ingin menukarnya kepada Format 'Y-m-d H:i:s'. Biasanya, anda akan menggunakan strtotime() untuk menukar rentetan kepada cap waktu dan kemudian menghantarnya ke tarikh(). Walau bagaimanapun, dalam kes anda, strtotime() mengembalikan palsu, meninggalkan anda dengan tarikh yang salah iaitu '1970-01-01 00:00:00'.
Isunya terletak pada format rentetan input. strtotime() menjangkakan cap masa yang sah atau rentetan dalam format yang dikenalinya. Malangnya, 'y-m-d-h-i-s' bukan salah satu daripada format yang diiktiraf itu.
Penyelesaian
PHP 5.3 dan Ke atas
Untuk PHP 5.3 dan lebih baru, penyelesaian yang disyorkan ialah menggunakan DateTime::createFromFormat(). Fungsi ini membolehkan anda menentukan topeng yang tepat menggunakan sintaks date() untuk menghuraikan tarikh rentetan masuk. Untuk kes anda, kod akan kelihatan seperti ini:
$datetime = DateTime::createFromFormat('y-m-d-h-i-s', $old_date); $new_date = $datetime->format('Y-m-d H:i:s');
PHP 5.2 dan Lower
Dalam PHP 5.2 dan lebih rendah, anda придется menghuraikan elemen secara manual (tahun , bulan, hari, jam, minit, saat) menggunakan substr() dan suapkan hasilnya ke mktime(), yang akan menjana cap waktu.
Walau bagaimanapun, pendekatan ini lebih menyusahkan. Adalah lebih baik untuk menggunakan format yang berbeza yang boleh difahami oleh strftime(), yang menyokong pelbagai format input tarikh. Contohnya, kod ini berfungsi:
$old_date = date('l, F d y h:i:s'); $old_date_timestamp = strtotime($old_date); $new_date = date('Y-m-d H:i:s', $old_date_timestamp);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan Tarikh 'y-m-d-h-i-s' kepada 'Y-m-d H:i:s' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!