如何根据国家/地区更改日期格式

我需要根据用户所在国家/地区更改DD / MM / YYYY标记的顺序。

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

我想要这样做的方法是创建一个country / Dateformat表,并根据国家/地区选择使用jquery移动字段。

是否有一种现有的方法可以在PHP或甚至js或更好的方法中完成此操作? 我也在寻找一个country / dateformat表,而不是手动插入所有值,但我找不到任何东西……

对于PHP,这应该是一个好的开始: http : //php.net/manual/en/function.setlocale.php

对于JavaScript: 以用户的语言环境格式和时间偏移显示日期/时间

总而言之,大多数现代语言都内置了很好的语言环境支持。 你不应该自己实现这个。 这将是令人厌倦和错误(本地化很难)。

如果要在客户端更改日期的格式,可以在JavaScript中的Date对象上尝试toLocaleString函数。 toLocaleString将根据客户端操作系统的位置设置更改格式。 您也不需要具有国家/地区和日期格式的表格。

这可以在不需要jQuery或任何其他插件的情况下完成。

如果您使用PHP,那么IntlDateFormatter()会帮助您:

 $d = new DateTime(); $fmt = new IntlDateFormatter('en-US', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); echo "US: ".$fmt->format($d)."
"; $fmt = new IntlDateFormatter('en-GB', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); echo "GB: ".$fmt->format($d)."
"; $fmt = new IntlDateFormatter('en-AU', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); echo "AU: ".$fmt->format($d)."
"; $fmt = new IntlDateFormatter('de-DE', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); echo "DE: ".$fmt->format($d)."
";

输出:

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