У меня есть этот MySQL-запрос, который возвращает две даты (которые оба отформатированы как amY). Теперь я хочу перевести эту дату на свой родной язык (датский). Как мне это сделать. Я попытался использовать функции setlocale () и strftime (), но это не сработает. Я знаю, что это очень простой вопрос, но мне очень нужна помощь 🙂 Большое спасибо!
Используйте setlocale
и strftime
вместе:
setlocale(LC_TIME, array('da_DA.UTF-8','da_DA@euro','da_DA','danish')); echo strftime("%A"); // outputs 'tirsdag'
Работает на моей php-установке в Windows.
использование
http://php.net/manual/en/function.strftime.php
<?php setlocale(LC_ALL, 'da_DA'); echo strftime("%A %e %B %Y"); ?>
Я не думаю, что функция date()
достаточно развита для вас, здесь.
Вместо этого я бы рекомендовал вам взглянуть на класс IntlDateFormatter
1 (цитирование) :
Date Formatter – это конкретный класс, который позволяет зависящее от языка форматирование / синтаксический анализ дат с использованием строк шаблонов и / или законченных шаблонов.
Есть несколько примеров на странице руководства IntlDateFormatter::format()
, где этот метод используется для отображения даты на двух разных языках, просто установив желаемый язык.
1. в комплекте с PHP> = 5.3
Я обнаружил, что setlocale
не является надежным, поскольку он установлен для каждого процесса, а не для потока (в руководстве упоминается об этом). Это означает, что другие исполняемые скрипты могут изменить языковой стандарт в любое время. Решение использует IntlDateFormatter из расширения intl
php.
Установите intl
if neceparry (ubuntu): sudo apt-get install php5-intl
Установите язык, который вы хотите использовать (например, я использую итальянский язык): sudo locale-gen it_IT
Создайте локально форматированную дату:
$fmt = new \IntlDateFormatter('it_IT', NULL, NULL); $fmt->setPattern('d MMMM yyyy HH:mm'); // See: http://userguide.icu-project.org/formatparse/datetime for pattern syntax echo $fmt->format(new \DateTime()); // Output: 6 gennaio 2016 12:10
Если вы пытаетесь преобразовать datetime
попробуйте это:
$fecha = $dateConsulta->format('dM-Y'); $fecha = str_replace('Jan','Ene',$fecha); $fecha = str_replace('Apr','Abr',$fecha); $fecha = str_replace('Aug','Ago',$fecha); $fecha = str_replace('Dec','Dic',$fecha);