мой сайт меняет свою локаль в зависимости от настроек пользователя или настроек браузера (где пользователь не задал свои предпочтения). Я использую диаграммы amline, специально для биржевой диаграммы, для которой требуется формат даты в «MM/DD/YYYY» или «DD-MM-YYYY», я полагаю, что диаграмма знает, как понимать даты. Существует много способов форматирования даты, зависящей от языкового стандарта компьютера, однако я не могу найти способ получить формат локали (как указано выше).Поиск локального представления даты в PHP5
ответ
Zend Framework имеет класс Zend_Locale
, который, в свою очередь, обращается к кучке XML-файлов в Unicode Locale Data Markup Language (LDML). Они содержат среди множества других вещей локализованные форматы дат. Взгляните на Unicode Common Locale Data Repository (CLDR) для получения дополнительной информации.
В качестве примера, файл XML для немецкого будет содержать такие вещи, как
<dateFormats>
<dateFormatLength type="full">
<dateFormat>
<pattern>EEEE, d. MMMM yyyy</pattern>
</dateFormat>
</dateFormatLength>
<dateFormatLength type="long">
<dateFormat>
<pattern>d. MMMM yyyy</pattern>
</dateFormat>
</dateFormatLength>
<dateFormatLength type="medium">
<dateFormat>
<pattern>dd.MM.yyyy</pattern>
</dateFormat>
</dateFormatLength>
<dateFormatLength type="short">
<dateFormat>
<pattern>dd.MM.yy</pattern>
</dateFormat>
</dateFormatLength>
</dateFormats>
Теперь, я не использовал это сам, но от кратко просмотра через него я предполагаю, что Zend_Locale_Data::getContent()
является вашим другом и должен предоставить вам всю необходимую информацию.
Если вы не хотите использовать ZF, вы можете просто получить доступ к этим файлам непосредственно с помощью синтаксического анализатора XML по вашему выбору (вы можете найти файлы XML где-то на unicode.org
).
CLDR - лучший ресурс для получения информации о локали. – shadowhand