2013-03-10 111 views
2

我有要求根據用戶國家更改DD/MM/YYYY標籤的順序。如何根據國家更改日期格式

http://en.wikipedia.org/wiki/Date_format_by_country

,我想做到這一點的方法是創建一個國家/ DATEFORMAT表,並根據國家選擇走動使用jQuery等領域。

是否有一種方法可以在PHP中甚至在js或更好的方法中完成此操作? 我也一直在尋找國家/日期格式的表,而不是手動插入所有的值,但我無法找到任何東西...

+0

退房術語 「語言環境」。 – 2013-03-10 21:18:54

+0

看看http://jqueryui.com/datepicker/#localization和http://docs.jquery.com/UI/Datepicker/Localization – MatRt 2013-03-10 21:21:52

+0

感謝大家的答案,但如果可能的話,我需要一個小例子代碼使用例如建議的JS toLocaleString移動字段,我有三個選擇元素DD MM YYYY。 jQuery的例子很好,但看起來你需要爲每個國家包含一個日期選擇器。 – Athanatos 2013-03-10 21:36:26

回答

0

如果你想改變客戶端的日期格式,你可以在JavaScript中的Date對象上嘗試toLocaleString函數。 toLocaleString將根據客戶端操作系統的位置設置更改格式。您也不需要擁有國家和日期格式的表格。

這可以不需要jQuery或任何額外的插件。

+1

理論上不錯,但實際上並不適用,因爲並非所有的瀏覽器都支持它。請不要參考W3Schools [ECMA-262](http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.5)語言功能的明確參考,[Mozilla開發者網絡](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString)也是一個很好的資源。在這種情況下,[toLocaleDateString](http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.6)可能是一個更好的建議。 – RobG 2013-03-10 23:10:25

0

如果您使用PHP那麼IntlDateFormatter()可以幫助你:

$d = new DateTime(); 

$fmt = new IntlDateFormatter('en-US', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); 
echo "US: ".$fmt->format($d)."<br/>"; 

$fmt = new IntlDateFormatter('en-GB', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); 
echo "GB: ".$fmt->format($d)."<br/>"; 

$fmt = new IntlDateFormatter('en-AU', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); 
echo "AU: ".$fmt->format($d)."<br/>"; 

$fmt = new IntlDateFormatter('de-DE', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); 
echo "DE: ".$fmt->format($d)."<br/>"; 

輸出:

US: 2/1/18 
GB: 01/02/2018 
AU: 1/2/18 
DE: 01.02.18