Я пытаюсь найти удобный способ конвертировать локализованные данные даты в стандартный объект dateTime.
С английским вводом это действительно просто, но, к сожалению, DateTime не поддерживает интернационализацию, поэтому я думаю, что мне придется использовать IntlDateFormatter.
Итак, я пытался передать результаты между ними и получить странные результаты:
$formatter = new \IntlDateFormatter(
'en_US',
\IntlDateFormatter::NONE,
\IntlDateFormatter::NONE
);
$formatter->setPattern("dd MMMM Y");
$timestamp = $formatter->parse("08 February 2012");
возвращается
1324767600
Когда я передаю это DateTime
$dateTime = new \DateTime();
$dateTime->setTimestamp($timestamp);
$formatted = $dateTime->format("d F Y");
я получил
25 December 2011
Так что же я здесь делаю не так, или, может быть, есть гораздо более простой способ сделать то, чего я хочу достичь?
Спасибо
Я думаю, это потому, что ваша модель не соответствует тому, что вы хотите сделать.
Согласно Документация ICU, MMM
ожидает трехбуквенный месяц. Чтобы выбрать большее представление, используйте MMMM
,
Других решений пока нет …