24Apr/068
PHP & Javascript & ASP: Format ATOM Date
I'm surprised this isn't built in.. I had the hardest time finding how to convert ATOM time (found in many RSS feeds) to something human-readable. The cleanest solution I have found thus far is this:
<?php
$atomdate = '2006-04-22T10:00:00.000Z';
$datetime = strtotime(substr($atomdate, 0, 10) . ' ' . substr($atomdate, 11, 8 ));
print date('m.d.y',$datetime);
?>That outputs "04.22.06" but you can use any of the formats available from php date().
Here is basically the same routine, but this time in Javascript
var atomdate = items[n].getElementsByTagName('published').item(0).firstChild.data;
var itemPubDateDay = atomdate.substr(0, 10);
var itemPubDateTime = atomdate.substr(11, 8 );
print itemPubDateDay;And this time in ASP
<%
atomdate = "2006-04-22T10:00:00.000Z"
dateandtime = mid(atomdate, 1, 10) & " " & mid(atomdate, 12, 8 )
response.write formatdatetime(dateandtime)
%>



May 5th, 2006 - 16:54
Thanks for the code! But can you please explain how the PHP code can be used? I am very new to ATOM, but I am trying to display it on a website and I really, really, hate the date format. Plus, I can’t figure out where and how to put the PHP code you provided above.
Thanks in advance.
May 10th, 2006 - 22:39
Hey TK,
Here is an example of how you can parse ATOM XML in PHP.
Hope that helps,
Chrissy
September 3rd, 2006 - 04:25
Thank you – struggling with learning PHP and trying to parse my blog on my website. Had it all working except the date and stumbled on this via Google. With a bit of thought, a tiny hint of swearing, and a little sweat, I’ve not only got it working, I’ve also learnt a lot more about PHP…
May 9th, 2007 - 07:58
ahh thanks!!
July 20th, 2007 - 10:15
Thank you so much for your help! This is exactly what I’ve been looking for! It took me a while to find it too, I guess I should’ve typed ‘php format atom date’ into the search and then it would’ve been easier for me. I was trying things like php date help!!!!!!!!!!
December 28th, 2007 - 16:16
Thank you for saving me time and effort!
January 8th, 2008 - 13:03
Thanks. Perfect.
June 8th, 2009 - 10:58
you can now use the shorter method of:
echo date( DateTime::RFC822, strtotime(‘2009-05-12T16:46:21.000Z’) );
For constants other than DateTime::RFC822 see:
http://uk2.php.net/manual/en/class.datetime.php