Я могу ошибаться, но, насколько мне известно, вы можете использовать локали для генерации названий месяцев, но нет встроенных функций даты, которые могут анализировать неанглийские имена.
Должно быть довольно легко создать список имен для сравнения:
<?php
$langs = array(
// Windows only locale names
'Albanian',
'French',
'German',
'Spanish',
);
$months = array();
foreach($langs as $lang){
setlocale(LC_TIME, $lang);
foreach(range(1, 12) as $i){
$months[$lang][$i] = strftime('%B', mktime(0, 0, 0, $i));
}
}
Однако возможно, что на некоторых языках есть альтернативные варианты написания, поэтому надежность этого метода зависит от ваших конкретных потребностей.
PHP имеет несколько функций интернационализации , что может быть лучше. Метод IntlDateFormatter :: parse () , кажется, делает именно то, что вы просите. Тем не менее, его требования включают PHP 5 >= 5.3.0, PECL intl >= 1.0.0
.