Using strtotime for dates before 1970

From the documentation for strtotime():

strtotime() has a range limit between Fri, 13 Dec 1901 20:45:54 GMT and Tue, 19 Jan 2038 03:14:07 GMT; although prior to PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some operating systems (Windows).

What version of PHP are you running? And on what platform? Perhaps it’s time for an upgrade.

If you’re working with dates outside the 13 Dec 1901 to 19 Jan 2038 range, then consider using PHP’s DateTime objects which can work with a much wider range of dates.

Procedural:

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

Leave a Comment