PHP의 현재 시간을 현지화하십시오
-
07-07-2019 - |
문제
PHP와 함께 현재 시간을 표시하려고합니다 (사용 이것):
$date = date('m/d/Y h:i:s a', time());
echo $date;
얻는만큼 간단합니다. 현지화하려면 어떻게해야합니까? 몇 달과 며칠을 히브리어로 번역하고 싶습니다.
감사.
해결책
Zend_Date
완전히 국제화되었습니다. 간단한 방법을 확인해야합니다.
몇 달과 주중의 전체 및 약어 이름은 130 개가 넘는 언어를 지원합니다. 메소드는 각 로케일과 관련된 기존 형식으로 월 및 평일의 현지화 된 이름을 사용하여 입력 및 날짜의 출력을 지원합니다.
다른 팁
사실, 나는 그것이 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 확장 그러나 PHP 5.2에서 동일한 기능을 얻습니다 ...
zend_date 및 intldateformatter보다 더 간단한 방법이 필요한 경우 표준을 시도하십시오. strftime
PHP의 기능. Ubuntu에서 PHP 5.3을 실행하는 러시아 언어로 실행하기 위해 내가 한 일은 다음과 같습니다 (러시아 로케일이 설치되지 않음).
로케일을 설치하려면
cd /usr/share/locales
sudo ./install-language_pack ru_RU
sudo dpkg-reconfigure locales
- Apache를 다시 시작하십시오
다음으로 다음 PHP 스 니펫을 사용하십시오.
setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());
오늘의 요일을 출력해야합니다.