考虑到语言环境日期格式,将DateTime对象转换为字符串
Is there a way in PHP to get a string from a DateTime
object considering the date format according to the locale configuration without having an array of 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
考虑到日期,PHP中是否有办法从 DateTime code>对象获取字符串 根据区域设置配置格式化而不具有
countries =>的数组 格式 code>? p>
$ dt = DateTime :: createFromFormat(DateTime :: ISO8601,'2016-07-27T19:30:00Z');
$ $ usadt = / *这里有什么PHP功能? * /
$ $ brazildt = / *这里有什么PHP功能? * /
echo(“美国格式:”。$ usadt);
echo(“巴西格式:”。$ brazildt);
USA格式:2016/07/27 07:30 pm
Brazil格式:27 / 07/2016 19:30
code> pre>
div>
In the strftime() php manual it says
Format the time and/or date according to locale settings. Month and weekday names and other language-dependent strings respect the current locale set with setlocale().
So take a look at setlocale() and change it before using formatted date.
how to format for your datetime locale
%x Preferred date representation based on locale, without the time
%X Preferred time representation based on locale, without the date
example
$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>";
outputs
USA Format: 07/27/2016 12:30:00 PM
Brazil Format: 27-07-2016 12:30:00
note
I got the locales from this page;