按国家/地区获取PHP date_format字符串

Roc*_*zzo 1 php mysql laravel php-carbon

我有一个MySQL格式的日期,我想显示本地化为我的用户县日期格式的日期.

我想知道是否有办法通过国家/地区的ISO代码获取格式,例如:

$mysql_date = '2017-12-31';
echo print_localized_date($mysql_date,'it'); // 31/12/2017
echo print_localized_date($mysql_date,'de'); // 31.12.2017
echo print_localized_date($mysql_date,'us'); // 12/31/2017
Run Code Online (Sandbox Code Playgroud)

我知道我可以直接传递格式,但我们的网站可能在世界各地销售,我应该考虑每种日期格式.

另一个解决方案可能是在我的国家/地区表中存储一个带有PHP日期格式字符串的列,在这种情况下是否有一个资源可以从中获取该信息,希望是CSV还是SQL转储?

我使用Laravel和Carbon,但我没有在该库中看到解决方案,例如moment.j我正在寻找的东西:["moment.js Multiple Locale Support][1]但在JavaScript中,我需要在PHP中使用它.

dec*_*eze 5

这就是IntlDateFormatter来自intl扩展的内容:

$fmt = new IntlDateFormatter(
    'it_IT',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::NONE,
    'Europe/Rome',
    IntlDateFormatter::GREGORIAN
);

$mysql_date = '2017-12-31';
$date = new DateTime($mysql_date);

echo $fmt->format($date);
Run Code Online (Sandbox Code Playgroud)
31/12/17
Run Code Online (Sandbox Code Playgroud)