2011-11-29 106 views
2

您好我有一個日期格式這樣如何英語日期格式轉換爲德國日期格式在PHP

(英文格式)

15. July 2011 

而且我想把它轉換成在這樣的德國格式

15. Juli 2011 

如何將日期格式從一種語言轉換爲其他語言格式?

我的代碼是

$date = '15. July 2011'; 
$newLocale = setlocale(LC_TIME, 'de_DE'); 
$date = strftime('%d. %B %Y',$date); 

但這不是將我得到July而不是Juli

回答

4

你可以使用setlocale函數調用date函數之前:

$newLocale = setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8'); 

編輯:來自strftime的報價cs:

如果您的系統中安裝了各自的語言環境,則此示例可以使用。

+0

我已經更新了我的問題 –

+0

strftime的第二個參數應該是11月29日時間戳,而不是字符串。 – matino

+0

如果您有編碼問題:在我們的CentOS設置的編碼語言環境必須是'de_DE.UTF8',不'de_DE.UTF8'。 – DanFromGermany

3

如果您安裝了Internationalization擴展,則可以使用IntlDateFormatter類。

這真的很強大,實際上顯示在您的目標語言環境的正確格式的日期和時間。

一個例子,德國可能是:

// create format 
$fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN); 

// output (using current time) 
echo datefmt_format($fmt , time()); 

它輸出:

Dienstag 2011