不要忘记 fromDateTime() 没有设置任何区域设置,将使用默认区域设置。在我的例子中是 en_US_POSIX。
如果您想创建一个包含 DateTime 对象值以及您所在区域设置的 IntlCalendar 对象,请改用 createInstance() 并执行以下操作:
<?php
$intlCalendar->setTime($dateTime->getTimestamp() * 1000);
?>
IntlCalendar 使用毫秒,因此您需要将时间戳乘以 1000。
使用 fromDateTime() 可能会导致意外行为,例如 getFirstDayOfWeek() 返回错误的整数。