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

时间:2013-03-10 21:16:21

标签: php javascript jquery jquery-plugins

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

对于JavaScript:Display date/time in user's locale format and time offset

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

答案 1 :(得分:1)

如果你使用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

答案 2 :(得分:0)

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

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