PHP: Tukar format tarikh
P粉769413355
2023-08-27 13:34:57
<p>Adakah terdapat cara mudah untuk menukar satu format tarikh kepada format tarikh lain dalam PHP? </p>
<p>Saya ada ini:</p>
<pre class="brush:php;toolbar:false;">$old_date = date('y-m-d-h-i-s');
$middle = strtotime($old_date); // mengembalikan bool(false)
$new_date = date('Y-m-d H:i:s', $middle); // kembali 1970-01-01 00:00:00</pra>
<p>Tetapi sudah tentu saya mahu ia mengembalikan tarikh semasa dan bukan masa hari itu. Apa yang saya buat salah? </p>
Cara paling mudah ialah
Anda mula-mula menyediakannya dengan format $dateString. Kemudian anda beritahu format yang anda mahukan $newDateString.
Ini juga mengelakkan penggunaan strtotime, yang kadangkala sukar digunakan.
Jika anda tidak berniat untuk menukar daripada satu format tarikh kepada format lain, tetapi hanya mahu tarikh semasa (atau masa tarikh) dalam format tertentu, maka ini lebih mudah:
Soalan lain juga merangkumi topik yang sama: Tukar format tarikh yyyy-mm-dd => dd-mm-yyyy.
Hujah kedua kepada
date()
perlu menjadi cap masa yang betul (bilangan saat sejak 1 Januari 1970). Anda menghantar rentetan yang tidak dikenali oleh date().Anda boleh menggunakan strtotime() untuk menukar rentetan tarikh kepada cap masa. Walau bagaimanapun, walaupun strtotime() tidak mengenali format
y-m-d-h-i-s
.PHP 5.3 dan ke atas
GunakanDateTime::createFromFormat 。它允许您使用
- untuk menghuraikan tarikh rentetan masuk.DateTime::createFromFormat
date()
. Ia membolehkan anda menentukan topeng yang tepat - menggunakan sintaksPHP 5.2 dan ke bawah
substr()
Anda perlu menghuraikan elemen secara manual (tahun, bulan, hari, jam, minit, saat) menggunakan dan hantar hasilnya kepada mktime()Tetapi ia memerlukan banyak kerja! Saya mengesyorkan menggunakan format berbeza yang strftime() faham. strftime() boleh faham mana-mana
. Sebagai contoh, ini berfungsi: 🎜乔下次在冰上滑倒的时间
masuk tarikh,