Page 1 of 1

PHP -- The Date APIs Still Suck

Posted: Sat Jun 28, 2008 12:36 am
by volomike
In PHP, it's my opinion that the date APIs still suck even in PHP 5.2. First, they've got bugs. Second, it's hard to do date diffs, age checks, age range checks, and date validation -- not without several functions and working out the kinks.

Take for instance this bug on my Ubuntu Linux with PHP 5.2.1:

Code: Select all

 
$s = '8-3-1968';
$s = date('Y-m-d', strtotime($s));
echo "$s<BR>\n";
 
That's supposed to show up as 1968-08-03, but it's showing up as 1968-03-08. See the month switched with the day? Perhaps I'm missing something, like perhaps I'm supposed to tell my date APIs to act American and not non-American on the dates? Don't know. But switch the first line from 8-3-1968 to 8/3/1968 and the bug goes away. Go figure.

And how many of us have stuck dates older than 1970 in and we start playing with it and end up with a date coming back with a year of 1969 or 1970 instead of something like 01/01/1888? Lots of us, that's who.

Luckily they've created the new DateTime() object, but you have to play with it to know its idiosyncrasies.