Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di strtotime per le date precedenti al 1970

Dalla documentazione per strtotime() :

strtotime() ha un limite di intervallo tra ven, 13 dicembre 1901 20:45:54 GMT e mar 19 gennaio 2038 03:14:07 GMT; sebbene prima di PHP 5.1.0 questo intervallo fosse limitato dal 01-01-1970 al 19-01-2038 su alcuni sistemi operativi (Windows).

Che versione di PHP stai utilizzando? E su quale piattaforma? Forse è ora di fare un upgrade.

Se stai lavorando con date al di fuori dell'intervallo dal 13 dicembre 1901 al 19 gennaio 2038, considera l'utilizzo degli oggetti DateTime di PHP che possono funzionare con un intervallo di date molto più ampio.

Procedurale:

$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:

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

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