Локализуйте текущее время в PHP

Попробуйте reinterpret_cast

unsigned char *foo();
std::string str;
str.append(reinterpret_cast<const char*>(foo()));
5
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Zend_Date полностью интернационализирован. Вы должны проверить это, чтобы найти простой способ сделать это:

Все полные и сокращенные имена месяца и будни поддерживаются для более 130 языков. Методы поддерживать как ввод, так и вывод даты с использованием локализованных названий месяцев и будних дней, в обычный формат, связанный с каждый языковой стандарт.

8
ответ дан 18 December 2019 в 11:58
поделиться

На самом деле, я не думаю, что это вполне возможно в PHP 5.2: - (

По крайней мере, не с тем, что связано с / в PHP (Есть библиотеки, закодированные в Однако PHP, который вы могли бы использовать, как указано в других ответах)


Однако с PHP 5.3 у вас есть класс IntlDateFormatter , который делает именно то, что вы хотите:

Этот класс представляет ICU Дата функциональность форматирования. Это позволяет пользователям отображать даты в локализованном форматировать или анализировать строки в PHP значения даты с использованием шаблонных строк и / или стандартные шаблоны.

Например, используя этот класс, например:

echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

Вы получите:

dimanche 9 novembre 2008 23:54:47 GMT+00:00
9 nov. 2008 23:54
2008年11月9日星期日 下午11時54分47秒 GMT+00:00
2008/11/9 下午 11:54
Sunday, November 9, 2008 11:54:47 PM GMT+00:00
Nov 9, 2008 11:54 PM

Что выглядит неплохо, не так ли?

Печально, что PHP 5.3 - это только несколько месяцев назад и недоступны на многих хостингах ... И потребуют тестирования (и, возможно, исправлений) для вашего приложения ...


Подумайте об этом: возможно, вы можете установить PECL intl extension на PHP 5.2 и получить ту же функциональность ...

5
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: