2016-01-26 27 views
1

當我嘗試推出元數據時,我遇到了語言障礙。將時間戳轉換爲Wordpress默認語言

$string_date = implode (';', get_post_meta(get_the_ID(), 'dbt_opleverdatum')); 
$format = get_option('date_format'); 
$string_date = date($format, $string_date) 

由於我的元數據保存爲一個PHP時間戳,其被放好作爲1451865600例如(這是2016年1月4日)。我把它撿起來,並把它通過一個日期戳它愛不釋手,我作爲4 January 2016

然而,整個網站是在荷蘭的運行,因爲我希望通過我的代碼注意到該檢索功能get_the_date()發佈日期。但是,這將輸出4 januari 2016,因爲它會通過Wordpress中的設置自行完成。它注意到wordpress是荷蘭語,並將其納入考慮範圍。

是否有一個函數,我可以把我的PHP日期,以及我的日期將適當地顯示在荷蘭語,而不是英語?

+0

什麼是$格式的價值?您最好使用本地化月份名稱%B作爲本地月份名稱 – Gavriel

+0

,它返回爲'j F Y'' – Dorvalla

回答

1

來源:http://php.net/manual/en/function.date.php

格式化日期其他語言,你應該使用的setlocale()和 的strftime()函數,而不是日期()。

$ts = 1451865600; 
$lang = get_option('WPLANG'); 
setlocale(LC_TIME, $lang); 
$format2 = '%e %B %G'; 
$string_date = strftime($format2, $ts); 

不幸的是,我不知道該怎麼給日期格式轉換的選項來的strftime格式字符串,但如果這是你的插件,那麼你可以改變它意味着對strftime的格式,或者如果你也可以在其他地方使用它,然後爲此添加另一個選項。

注意:使用的setlocale改變全局locale,所以它可能是需要恢復後調用STRFTIME的CHAGE:

$current_locale = setlocale(LC_TIME, "0"); 
setlocale(LC_TIME, $lang); 
... 
setlocale(LC_TIME, $current_locale); 
+0

對於遲到的回覆,我表示歉意。我會接受這個答案,儘管它從來沒有完全回答我的問題。 WordPress如何處理這個問題?因爲如果它有一個特殊的功能轉換這個,我想utalize它,因爲說有人購買這個主題,是德語,代碼不會與主題選項中設置的propper語言相對應。現在我的想法是,它已被保存爲數據庫中的Unix,並且它在一個函數中移動,但我似乎無法在相應文件中的任何位置找到函數。 – Dorvalla

+0

我改變了一下使用WPLANG。可能它也會在沒有這條線的情況下工作,因爲它已經由WP設置。 – Gavriel

+0

我在我的配置文件中定義了它,但沒有在那裏指定它。我現在做了,然後這個選項就起作用了。我不確定爲什麼它沒有被標準定義爲誠實。也許這是數據庫調用獲取該信息。我會看看這個php myadmin。 – Dorvalla