У меня есть некоторые переменные даты, которые содержат название исландских месяцев, например:
$date = '27. júní 2018 04:53';
Я хочу заменить названия этих месяцев английскими названиями месяцев:
$icelandic = array('Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní', 'Júlí', 'Ágúst', 'September', 'Oktober', 'Nóvember', 'Desember');
Или ассоциативный массив:
$icelandic = array('Janúar' => '', 'Febrúar' => '', 'Mars' => '', 'Apríl' => '', 'Maí' => '', 'Júní' => '', 'Júlí' => '', 'Ágúst' => '', 'September' => '', 'Oktober' => '', 'Nóvember' => '', 'Desember' => '');
Как вы видите или знаете, названия месяцев не являются целым словом, но, возможно, всего 3 или 4 символа из слова.
Так что, если часть этих значений в массиве существует в переменной date, то она заменяется английским месяцем.
Замененные английские месяцы могли бы быть целым миром, как new DateTime()
обрабатывает это.
Таким образом, вышеуказанная переменная может быть:
$date = '27. june 2018 04:53';
Или:
$date = '27. jun 2018 04:53';
UPDATE:
Что я пробовал:
$icelandic = array('Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní', 'Júlí', 'Ágúst', 'September', 'Oktober', 'Nóvember', 'Desember');
$english = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
for($i=0; $i < count($icelandic); $i++) {
$date = str_replace($icelandic[$i], $english[$i], $date);
}
Или сначала чек, используя strpos()
:
if(strpos($icelandic[$i], $date)){
$date = str_replace($icelandic[$i], $english[$i], $date);
}
Я не знаю краткую форму английского и исландского месяцев в форме даты.