Как преобразовать названия исландских месяцев в английские имена мотыльков? - PullRequest
0 голосов
/ 01 июля 2018

У меня есть некоторые переменные даты, которые содержат названия исландских месяцев, такие как:

$date = '27. júní 2018 04:53'

Я хочу сравнить даты, но когда я попробую это:

strtotime('27. júní 2018 04:53');

Я получаю пустой результат.

И когда я пытаюсь:

new DateTime('27. júní 2018 04:53');

Я получаю сообщение об ошибке:

Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): 
Failed to parse time string (27. júní 2018 04:53) at position 0 (2): 
Unexpected character'    
Stack trace: #0: DateTime->__construct('27. j\xC3\xBAn\xC3\xAD 2018...') #1 {main} thrown 

Есть ли способ перевести или преобразовать названия этих месяцев в английские названия месяцев?

1 Ответ

0 голосов
/ 12 июля 2018

Я пришел с этим, для установки потребовалось php7.0-intl:

<?php
$input     = '27. júní 2018 04:53';
$locale    = 'is_IS';
$date_type = IntlDateFormatter::FULL;
$time_type = IntlDateFormatter::FULL;
$timezone  = 'Atlantic/Reykjavik';
$calendar  = IntlDateFormatter::GREGORIAN;
$pattern   = 'd. MMMM yyyy HH:ss'; // see http://userguide.icu-project.org/formatparse/datetime

$formatter = new IntlDateFormatter($locale, $date_type, $time_type, $timezone, $calendar, $pattern);
$timestamp = $formatter->parse($input);

$output = DateTime::createFromFormat('U', $timestamp)->format('d F Y H:i:s');
echo $output;

Это дает вам:

27 June 2018 04:00:53

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...