Rumah  >  Soal Jawab  >  teks badan

PHP: Tukar format tarikh

<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>
P粉769413355P粉769413355391 hari yang lalu441

membalas semua(2)saya akan balas

  • P粉439804514

    P粉4398045142023-08-28 12:37:15

    Cara paling mudah ialah

    $myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
    $newDateString = $myDateTime->format('m/d/Y');

    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:

    $now = new DateTime();
    $timestring = $now->format('Y-m-d h:i:s');

    Soalan lain juga merangkumi topik yang sama: Tukar format tarikh yyyy-mm-dd => dd-mm-yyyy.

    balas
    0
  • P粉006977956

    P粉0069779562023-08-28 09:51:45

    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

    Gunakan DateTime::createFromFormatDateTime::createFromFormat。它允许您使用 date(). Ia membolehkan anda menentukan topeng yang tepat - menggunakan sintaks

    - untuk menghuraikan tarikh rentetan masuk.

    PHP 5.2 dan ke bawah

    substr()Anda perlu menghuraikan elemen secara manual (tahun, bulan, hari, jam, minit, saat) menggunakan dan hantar hasilnya kepada mktime()

    yang akan membina cap masa untuk anda.

    Tetapi ia memerlukan banyak kerja! Saya mengesyorkan menggunakan format berbeza yang strftime() faham. strftime() boleh faham mana-mana 乔下次在冰上滑倒的时间masuk tarikh,

    . Sebagai contoh, ini berfungsi: 🎜
    $old_date = date('l, F d y h:i:s');              // returns Saturday, January 30 10 02:06:34
    $old_date_timestamp = strtotime($old_date);
    $new_date = date('Y-m-d H:i:s', $old_date_timestamp);

    balas
    0
  • Batalbalas