Carbon> Текстовый месяц не найден. Carbon :: createFromFormat ('j F Y', '7 maart 2019') - PullRequest
0 голосов
/ 09 марта 2019

Я собираю данные с внешнего сайта, где датой является голландский: 7 марта 2019. Я пытаюсь преобразовать это в объект Carbon, но не могу понять, как.

$value = '7 maart 2019';
$carbon = Carbon::createFromFormat('j F Y', $value);

var_dump($carbon);
// "A textual month could not be found"

Я также попытался установить языковой стандарт на nl или nl_NL, но не повезло.

use Carbon\Carbon;

$value = '7 maart 2019';
Carbon::setLocale('nl');
$carbon = Carbon::createFromFormat('j F Y', $value);

var_dump($carbon);
// "A textual month could not be found"

Ссылка на документы Carbon на документы DateTime :: createFromFormat () .Это возвращает false с такой же настройкой.

Что мне здесь не хватает ...?

1 Ответ

0 голосов
/ 10 марта 2019

Углерод - это слой поверх нативной функции PHP datetime, который не поддерживает локализованный анализ, может быть локализован только вывод.Вам нужно будет либо написать свой собственный переводчик, либо использовать библиотеку типа date by jenssegers , которая поддерживает перевод перед синтаксическим анализом:

Такие методы, как parse и createFromFormat, также поддерживают «обратные переводы».».При вызове этих методов с переведенным вводом он попытается перевести его на английский, прежде чем передать его в DateTime:

$date = Date::createFromFormat('l d F Y', 'zaterdag 21 maart 2015');
...