Converting a negative date with DateTime get me false
Test code
var_dump(\\DateTime::createFromFormat(\\DateTime::ISO8601, \'-0001-11-30T00:00:00+0100\')
According to manual of Format
public string DateTime::format ( string $format )
where
$format
Format accepted by date().
and if you look in date()
$d->format(\DateTime::ISO8601);
should be
$d->format("c")
because "c" is according to format in date()
ISO 8601 date (added in PHP 5)
In my test $d->format(\DateTime::ISO8601);
outputs
2015-09-15T00:00:00+0200
while
$d->format("c");
outputs
2015-09-15T00:00:00+02:00
I hope it helps.