我想输出一个本地化的日期,并尝试过这样做:
$time = new DateTime();
echo IntlDateFormatter::formatObject($time)."\n";
echo IntlDateFormatter::formatObject($time, [IntlDateFormatter::NONE, IntlDateFormatter::MEDIUM])."\n";
echo IntlDateFormatter::formatObject($time, [IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE])."\n";我得到了这个输出:
Oct 28, 2015, 2:10:50 PM
2:10:50 PM
20151028 02:10 PM因此,删除datepart可以正常工作,但不能删除时间部分。我做错了什么?
你可以在这里试试:https://3v4l.org/UdtoX
编辑:
我想使用IntlDateFormatter的原因是为了获得日期的i18n。例如,如果设置Locale::setDefault('en_GB')和在使用IntlDateFormatter之前设置Locale::setDefault('no_NO'),则应该得到不同的结果。因此,我不想手动指定格式。
发布于 2015-10-28 20:48:40
它似乎是PHP中的一个bug。通过创建一个对象而不是调用静态方法,它可以工作:)
$formatter = new IntlDateFormatter(Locale::getDefault(), IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE);
echo $formatter->format($time);给出所需的输出Oct 28, 2015。
发布于 2015-10-28 13:30:25
<?php
$date = new DateTime();
$dateFormatter = IntlDateFormatter::create(
Locale::getDefault(),
IntlDateFormatter::NONE,
IntlDateFormatter::NONE,
date_default_timezone_get(),
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
var_dump($dateFormatter->format($date));https://stackoverflow.com/questions/33392067
复制相似问题