Преобразование отрицательной даты с помощью 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
Я надеюсь, что это помогает.