RFC 3339 how make a dateTime from

datetime, google-plus, php, rfc3339

Solution

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

Problem

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...

Original source