Timezones
Dealing with PHP timezones
Sadly, our developers still use procedural functions. Here is a SPL implementation.
$dtFromDb = '2020-11-03 18:00:00'; // No TZ info provided here!
$dateTimeZoneServer = new DateTimeZone(date_default_timezone_get());
$dateTimeZoneAccount = new DateTimeZone('Indian/Christmas');
$dateTimeZoneUser = 'UTC';
$dateTimeZoneServer = new DateTimeZone($dateTimeZoneUser);
$dt = new DateTime($dtFromDb, $dateTimeZoneServer);
// or $dt->setTime($hour, $minute);
$dt->setTimezone($dateTimeZoneAccount);
echo $dt->format('Y-m-d H:i:s'); // now H:i in account's tz
$dt->setTimezone($dateTimeZoneUser);
echo $dt->format('Y-m-d H:i:s'); // now H:i in user's tz