Я пытаюсь отформатировать дату из прошлого, но, видимо, не могу этого сделать.
Проблема в том, что дата не просто отключается на несколько часов (что может быть из-за разных часовых поясов), но вместо этого он отключен на 5 дней .
Это мой пример кода:
<?php
$locale = "de";
$intlTimezone = \IntlTimeZone::createDefault();
$dateTimezone = $intlTimezone->toDateTimeZone();
$calendar = new \IntlGregorianCalendar($intlTimezone, $locale);
$dateFormatter = \IntlDateFormatter::create($locale, 2, -1, $intlTimezone, $calendar, "dd.MM.y");
$time = DateTimeImmutable::createFromFormat("Y-m-d", "978-12-27", $dateTimezone);
var_dump($time);
var_dump($time->format("d.m.Y"));
var_dump($dateFormatter->format($time));
Вы можете увидеть его на 3v4l.org здесь: https://3v4l.org/tXVgn
Это вывод:
object(DateTimeImmutable)#5 (3) {
["date"]=>
string(26) "0978-12-27 14:31:03.000000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(3) "CET"
}
string(10) "27.12.0978"
string(9) "22.12.978"
Последнее значение кажется неправильным.Также обратите внимание, что PHP <= 7.0.33 не может отформатировать его и возвращает <code>false.