【发布时间】:2014-06-04 16:30:58
【问题描述】:
我应该如何使用IntlDateFormatter 将非公历日期转换为其他日历类型。
我想将 "1392-01-02" 从 persian 转换为 islamic 日历。我尝试了以下代码,但它没有转换日历:
$formatter = IntlDateFormatter::create('en_US@calendar=persian', IntlDateFormatter::FULL,
IntlDateFormatter::FULL, 'Asia/Tokyo',IntlDateFormatter::TRADITIONAL,'yy-MM-dd');
$formatter->setCalendar(IntlDateFormatter::GREGORIAN);
echo $formatter->format($formatter->parse("1392-2-31"));
【问题讨论】:
-
您不应该将第 5 个参数作为
IntlDateFormatter::TRADITIONAL传递吗?由于输入日期是非公历。 -
@MarcellFülöp "需要在 locale 中指定非公历。示例可能包括 locale="hi@calendar=BUDDHIST"。看来这个参数完全没用。