2013-03-10 90 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