PHP中是否有办法从DateTime
对象获取字符串,根据语言环境配置考虑日期格式而不使用countries => formats
数组?
$dt = DateTime::createFromFormat(DateTime::ISO8601, '2016-07-27T19:30:00Z');
$ $usadt = /* What PHP function here? */
$ $brazildt = /* What PHP function here? */
echo ("USA Format: " . $usadt);
echo ("Brazil Format: " . $brazildt);
USA Format: 2016/07/27 07:30pm
Brazil Format: 27/07/2016 19:30
答案 0 :(得分:1)
根据区域设置格式化时间和/或日期。月份和工作日名称以及其他依赖于语言的字符串遵循使用setlocale()设置的当前语言环境。
因此,请先查看setlocale()并在使用格式化日期之前进行更改。
如何格式化日期时间区域设置
%x Preferred date representation based on locale, without the time
%X Preferred time representation based on locale, without the date
示例强>
$dt = DateTime::createFromFormat(DateTime::ISO8601, '2016-07-27T19:30:00Z');
setlocale(LC_TIME, 'en_US');
$usadt = strftime('%x %X', $dt->getTimestamp());
setlocale(LC_TIME, 'pt_BR.UTF-8');
$brazildt = strftime('%x %X', $dt->getTimestamp());
echo "USA Format: $usadt<br>";
echo "Brazil Format: $brazildt<br>";
<强>输出强>
USA Format: 07/27/2016 12:30:00 PM
Brazil Format: 27-07-2016 12:30:00
注意强>
我从this page获得了区域设置;