将字符串的格式模式更正为DateTime

I have a string looking like this 2016-11-29T14:04:07+00:00, can anyone hint me what would be the correct format to in order to create a DateTime object using createFromFormat I have already tried some options but none of them seem to work until now.

Thanks in advance for the help.

DateTime has predefined constants for certain formats. Your date follows the ISO 8601 standard and its equivalent DateTime constant is called ATOM. So try:

$date = DateTime::createFromFormat(DateTime::ATOM, '2016-11-29T14:04:07+00:00');

Note that there is another constant called ISO8601 which is not compatible as stated in the documentation:

This format is not compatible with ISO-8601, but is left this way for backward compatibility reasons. Use DateTime::ATOM or DATE_ATOM for compatibility with ISO-8601 instead.

The correct format would be "c", the ISO 8601 date-format :)