KevinTheJedi Hi Kevin, I have debugged the function you indicated, the part where the IntlDateFormatter object is created. I have created a ticket and the actual time should be 10:33, we are still 2 hours below. I have passed the $datetime object to the getIntDateFormatter function to check that the time values are stable before creating the IntlDateFormatter object and after. I have also printed the value of the $options array. The results are:




From what I see, I don't think the problem is with IntlDateFormatter but rather with $datetime. I think it is passing an incorrect value to IntlDateFormatter so that when we do the ->format($datetime) we get an incorrect value. I think that if $datetime was correct this should not happen. Do you agree?
Now, $datetime is created from $datetime->setTimezone($tz) (class.format.php:716). If you look at the value of $datetime it already has the wrong time (although the TZ is correct).
Honestly I don't understand what could be happening for $datetime to have the wrong time when the TZ is correct. I thought that $datetime and $timestamp should be the same value, right? I mean, you store the value in the database and get the same one from it to print the time. But it seems that it is not. I hope you can shed some light on this to see what might be going on. Thank you very much Kevin. Best regards.