PHP Datetime не может преобразовать отрицательную дату ISO8601

Преобразование отрицательной даты с помощью DateTime приведет меня к ошибке

Тестовый код

var_dump(\DateTime::createFromFormat(\DateTime::ISO8601, '-0001-11-30T00:00:00+0100')); 

результат

 boolean false 

Ожидаемый результат

 object(DateTime)[5] public 'date' => string '-0001-11-30 00:00:00' (length=20) public 'timezone_type' => int 1 public 'timezone' => string '+01:00' (length=6) 

(или что-то подобное)

PS Строка отрицательной даты была создана с помощью формата $ d-> (\ DateTime :: ISO8601);

PHP-версия PHP 5.4.28

Согласно руководству формата

  public string DateTime::format ( string $format ) 

где

 $format Format accepted by date(). 

и если вы посмотрите на дату ()

 $d->format(\DateTime::ISO8601); 

должно быть

 $d->format("c") 

потому что «c» соответствует формату в дате ()

Дата ISO 8601 (добавлена ​​в PHP 5)

В моем тестовом $d->format(\DateTime::ISO8601); выходы

2015-09-15T00: 00: 00 + 0200

в то время как

 $d->format("c"); 

выходы

2015-09-15T00: 00: 00 + 02: 00

Я надеюсь, что это помогает.