Don't forget that fromDateTime() doesn't set any locale and that the default one will be set. In my case it was en_US_POSIX.If you wan't to create a IntlCalendar object containing the values of a DateTime object with your locale, use createInstance() instead and do a <?php$intlCalendar->setTime($dateTime->getTimestamp() * 1000);?>IntlCalendar works with milliseconds so you need to multiply the timestamp with 1000.Using fromDateTime() can cause unwanted behaviour like getFirstDayOfWeek() returning a wrong integer.