문제

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을 실행하는 러시아 언어로 실행하기 위해 내가 한 일은 다음과 같습니다 (러시아 로케일이 설치되지 않음).

로케일을 설치하려면

  1. cd /usr/share/locales
  2. sudo ./install-language_pack ru_RU
  3. sudo dpkg-reconfigure locales
  4. Apache를 다시 시작하십시오

다음으로 다음 PHP 스 니펫을 사용하십시오.

setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());

오늘의 요일을 출력해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top