我用IntlDateFormatter
格式化DateTime
(CarbonCarbon
)日期。但是,该模式并不是在每种情况下都与格式化日期匹配。我注意到在德语设置中:
$datetime = DateTime::createFromFormat('Y-m-d', '2016-06-27');
$locale = 'de';
$timezone = 'Europe/Berlin';
$datetype = IntlDateFormatter::MEDIUM;
$timetype = IntlDateFormatter::NONE;
$intlDateFormatter = new IntlDateFormatter($locale, $datetype, $timetype, $timezone);
$pattern = $intlDateFormatter->getPattern();
$date = $intlDateFormatter->format($datetime);
$date
正确返回27.06.2016
。但是$pattern
返回dd.MM.y
。这是怎么了?
好的,我刚刚发现返回的模式不是php而是CLDR模式。这里描述了这些日期模式。
下一步:寻找将CLDR模式转换为php模式的最佳方法。