Получить название месяца на испанском языке
я хочу получить имя месяца в соответствии с датой, сохраненной в MYSQL, чтобы поместить его в столбец. У меня есть пример, но он возвращает его на английском языке:
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
echo $monthName;
в этом случае я вернусь March, и я хочу, чтобы это было Март то, что вернется.
Заранее большое спасибо за ваши ответы.
2 answers
Вы можете использовать strftime()
который печатает даты на основе locale, для этого вы должны назначить locale desado, если вы этого не сделали раньше, чем это
setlocale(LC_ALL, 'es_ES');
Где 'es_ES'
является locale по вашему выбору, или это может быть пользователь, наконец, пример, адаптированный к вашему коду:
setlocale(LC_ALL, 'es_ES');
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = strftime('%B', $dateObj->getTimestamp());
echo $monthName;
Напечатает marzo
Я думаю, что важно отметить, что setlocale()
получите два параметра, категорию и местоположение, если вы просто хотите, чтобы даты и время отображаются в переводе вы можете использовать категорию LC_TIME
setlocale(LC_TIME, 'es_ES');
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = strftime('%B', $dateObj->getTimestamp());
echo $monthName;
Что напечатает насmarzo
Я игнорирую, есть ли функция для отображения данных на испанском языке, как вы просите, но вы можете перевести ее с помощью switch.
Из вашей переменной $monthName
Пример:
<?php
$monthNum = 3;
$dateObj = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
echo $monthName;
switch($monthName)
{
case "January":
$monthNameSpanish = "Enero";
break;
case "February":
$monthNameSpanish = "Febrero";
break;
case "March":
$monthNameSpanish = "Marzo";
break;
...
}
echo $monthNameSpanish;
?>
Или прямо из вашей переменной $monthNum
:
<?php
$monthNum = 1;
switch($monthNum)
{
case 1:
$monthNameSpanish = "Enero";
break;
case 2:
$monthNameSpanish = "Febrero";
break;
case 3:
$monthNameSpanish = "Marzo";
break;
//...
}
echo $monthNameSpanish;
?>