RFC 3339 how make a dateTime from

JahStation picture JahStation · Jan 27, 2014 · Viewed 10.4k times · Source

I'm trying to format a date passed from a google plus Api thats like the guide says in RFC 3339 format:

PUBLISHED-> datetime-> The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.

So by php documentation i found that:

DATE_RFC3339 Same as DATE_ATOM (since PHP 5.1.3)

And that both format are something like:

"Y-m-d\TH:i:sP"

Actually the output of the Google api is something like:

2014-01-22T10:36:00.222Z

When I'm trying to launch command like:

$date = DateTime::createFromFormat("Y-m-d\TH:i:sP", $activity['published']); //$activity['published'] contain the  date

I have always FALSE as return. In my opinion the problem is in the final part

.222Z

any suggestion will be appreciate before cutting it by some rudimental approach...

Answer

Glavić picture Glavić · Jan 27, 2014

You don't need to use DateTime::createFromFormat() for standard inputs. Just use:

$date = new DateTime('2014-01-22T10:36:00.222Z');
var_dump($date);

But if you still insist to use createFromFormat(), then use correct format, with microseconds:

$date = DateTime::createFromFormat('Y-m-d\TH:i:s.uP', '2014-01-22T10:36:00.222Z');
var_dump($date);