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
Lepaskan: 2024-12-24 18:32:34
asal
544 orang telah melayarinya

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');
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan