Heim  >  Artikel  >  Datenbank  >  Wie kann ich in PHP mit Datumsangaben vor 1970 umgehen, wenn ich „strtotime()' verwende?

Wie kann ich in PHP mit Datumsangaben vor 1970 umgehen, wenn ich „strtotime()' verwende?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-25 11:31:14411Durchsuche

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

Arbeiten mit Daten vor 1970 unter Verwendung von strtotime()

Problem:

Sie haben ein Textspalte in einer MySQL-Datenbank, in der Datumsangaben im Format jjjj-mm-tt gespeichert werden. Ihr PHP-Code verwendet strtotime() zum Konvertieren der Datumsangaben, Sie stellen jedoch fest, dass er nur Werte nach dem 1. Januar 1970 analysiert. Viele Ihrer Datumsangaben liegen unter diesem Grenzwert und Sie fragen sich, ob es eine Problemumgehung gibt, ohne Ihre Datenbankstruktur zu ändern.

Lösung:

Die offizielle PHP-Dokumentation hebt die Datumsbereichsbeschränkungen von hervor strtotime():

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

Option 1: PHP-Version und Betriebssystem aktualisieren

Wenn möglich, aktualisieren Sie auf eine PHP-Version gleich oder höher als 5.1.0 auf einer Plattform, die den erweiterten Datumsbereich unterstützt.

Option 2: Verwenden Sie DateTime von PHP Objekte

Erwägen Sie die Verwendung von DateTime-Objekten für Datumsangaben außerhalb des strtotime()-Bereichs. Sie bieten mehr Flexibilität.

Verfahrensansatz:

$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");

OOP-Ansatz:

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

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

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP mit Datumsangaben vor 1970 umgehen, wenn ich „strtotime()' verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn