2011-08-02 9 views
9

이 MySQL 쿼리는 두 개의 날짜 (둘 다 a-m-Y로 포맷 됨)를 반환합니다. 이제이 날짜를 내 자신의 언어 (덴마크어)로 번역하고 싶습니다. 어떻게해야합니까? setlocale() 및 strftime() 함수를 모두 시도했지만 작동하지 않습니다. 아주 기본적인 질문이지만, 정말 도움이 필요합니다. :) 고마워요!PHP의 날짜 언어 변경

답변

1

여기서는 date() 기능이 충분히 발전하지 않았다고 생각합니다.

날짜 포맷터의/분석을 포맷 로케일에 의존 수있는 구체적인 클래스 :

대신에, 나는 당신이이 (인용)을 IntlDateFormatter1 클래스를 살펴 추천 패턴 문자열을 사용한 날짜 및/또는 통조림 패턴.

매뉴얼 페이지 IntlDateFormatter::format()에 몇 가지 예가 있습니다.이 방법은 원하는 로케일을 설정하여 두 가지 다른 언어로 날짜를 표시하는 데 사용됩니다.


1

는 PHP에 번들> = 5.3

+0

tha 복잡하게 보입니다 : D 좋아요, 제가 살펴 보겠습니다. 언어를 바꾸는 것이 그렇게 힘들 수 있다는 것을 이해할 수 없습니다. – Emil

+0

글쎄, 올바른 언어로 문자열을 생성 할 수있는 "무언가"가 있어야합니다. 즉, 단어와 순서를 아는 것입니다. 그것은 쉬운 일이 아닙니다. –

6

사용 setlocale과 함께 strftime : Windows에서 내 PHP 설치에

setlocale(LC_TIME, array('da_DA.UTF-8','[email protected]','da_DA','danish')); 
echo strftime("%A"); // outputs 'tirsdag' 

작품. 당신은 변환하려는 경우

+1

하지만 그 방법으로 변수를 출력 할 수 있습니까? – Emil

+0

무엇을 의미합니까? 어떤 변수를 출력 하시겠습니까? –

+0

쿼리의 날짜 - 데이터를 변수에 저장합니다. 나는 현재 날짜를 출력하고 싶지 않다 ... – Emil

-1

datetime이 시도 :

$fecha = $dateConsulta->format('d-M-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); 
1

내가이 프로세스 당 설정되어 setlocale는 신뢰할 수 없습니다 것을 발견 , 스레드 당이 아닙니다 (매뉴얼에이 내용이 언급되어 있습니다). 이것은 다른 실행중인 스크립트가 언제든지 로케일을 변경할 수 있음을 의미합니다. 해결책은 intl php 확장자의 IntlDateFormatter입니다. sudo apt-get install php5-intl

  • 사용할 로케일을 설치 (I 예로 들어 이탈리아어 사용하고 있습니다) : necesarry (우분투) 경우

    • 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