tags:

views:

368

answers:

3

Hi all,

I'm working with PHP 5.3 on my local machine and needed to parse a UK date format (dd/mm/yyyy). I found that strtotime didn't work with that date format, so I used date_create_from_format instead - which works great.

Now, my problem is that my staging server is running PHP 5.2, and date_create_from_format doesn't work on that version. (It's a shared server, and wouldn't have a clue how to upgrade it to PHP 5.3)

So is there a similar function to date_create_from_format that I can use? Bespoke or PHP native?

Many thanks, - Lee

A: 

If you need to parse only one particular format, it's elementary string operation.

list($d,$m,$y)=explode("/",$datestr);
Col. Shrapnel
this only gives him three strings, not the parsed date
stereofrog
@stereofrog uh oh what a problem :)
Col. Shrapnel
+2  A: 

Try strptime() which is available in PHP 5.1 and above.

Amber
not available on windows though
Gordon
Thanks Dav. Yes, I'm on Windows for local dev (using XAMPP, PHP 5.3), but staging and live servers are LAMP, so this would work as a fall-back.
leekelleher
+2  A: 

If strptime is not available to you, then here is a different idea. It is similar to Col. Shrapnel's approach but instead uses sscanf to parse the date-part values into variables and uses those to construct a new DateTime object.

list($day, $month, $year) = sscanf('12/04/2010', '%02d/%02d/%04d');
$datetime = new DateTime("$year-$month-$day");
echo $datetime->format('r');
salathe