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

Mary-Kate Olsen
Lepaskan: 2024-11-25 11:31:14
asal
409 orang telah melayarinya

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

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

Pendekatan OOP:

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

echo $date->format("F j, Y");
Salin selepas log masuk

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!

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