Получить название месяца на испанском языке


я хочу получить имя месяца в соответствии с датой, сохраненной в MYSQL, чтобы поместить его в столбец. У меня есть пример, но он возвращает его на английском языке:

$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March
echo $monthName;

в этом случае я вернусь March, и я хочу, чтобы это было Март то, что вернется.

Заранее большое спасибо за ваши ответы.

Author: Carlos Roberto Luna Ochoa, 2018-06-21

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

 3
Author: , 2018-06-21 15:53:08

Я игнорирую, есть ли функция для отображения данных на испанском языке, как вы просите, но вы можете перевести ее с помощью 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;
?>
 0
Author: Silvestre Silva, 2018-06-21 15:26:18