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?

Bagaimanakah Saya Boleh Menukar Rentetan Tarikh 'y-m-d-h-i-s' kepada 'Y-m-d H:i:s' dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 18:32:34550semak imbas

How Can I Convert a 'y-m-d-h-i-s' Date String to 'Y-m-d H:i:s' in 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!

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