Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengendalikan Tarikh Sebelum 1970 dalam PHP Apabila Menggunakan `strtotime()`?

Bagaimanakah Saya Boleh Mengendalikan Tarikh Sebelum 1970 dalam PHP Apabila Menggunakan `strtotime()`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 11:31:14472semak imbas

How Can I Handle Dates Before 1970 in PHP When Using `strtotime()`?

Bekerja dengan Tarikh Sebelum 1970 Menggunakan strtotime()

Masalah:

Anda mempunyai lajur teks dalam pangkalan data MySQL yang menyimpan tarikh dalam format yyyy-mm-dd. Kod PHP anda menggunakan strtotime() untuk menukar tarikh, tetapi anda mendapati ia hanya menghuraikan nilai selepas 1 Januari 1970. Banyak tarikh anda jatuh sebelum had ini dan anda tertanya-tanya jika terdapat penyelesaian tanpa mengubah struktur pangkalan data anda.

Penyelesaian:

Dokumentasi PHP rasmi menyerlahkan had julat tarikh bagi strtotime():

Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT

Pilihan 1: Naik taraf Versi PHP dan Sistem Pengendalian

Jika boleh, naik taraf kepada versi PHP yang sama atau lebih besar daripada 5.1.0 pada platform yang menyokong julat tarikh lanjutan.

Pilihan 2: Gunakan DateTime PHP Objek

Pertimbangkan untuk menggunakan objek DateTime untuk tarikh di luar julat strtotime(). Mereka memberikan fleksibiliti yang lebih besar.

Pendekatan Prosedur:

$date = date_create($row['value']);
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, "F j, Y");

Pendekatan OOP:

try {
    $date = new DateTime($row['value']);
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format("F j, Y");

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Tarikh Sebelum 1970 dalam PHP Apabila Menggunakan `strtotime()`?. 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