Для такого завдання ви дійсно повинні використовувати клас DateTime PHP. Будь ласка, ігноруйте всі відповіді, які радять вам використовувати date () або date_set_time_zone, це просто погано та застаріло.
Я буду використовувати псевдокод для демонстрації, тому спробуйте налаштувати код відповідно до ваших потреб.
Якщо припустити, що змінна $ tz містить ім'я рядка дійсного часового поясу, а змінна $ timestamp містить мітку часу, яку ви хочете відформатувати відповідно до часового поясу, код буде виглядати так:
$tz = 'Europe/London';
$timestamp = time();
$dt = new DateTime("now", new DateTimeZone($tz));
$dt->setTimestamp($timestamp);
echo $dt->format('d.m.Y, H:i:s');
Клас DateTime є потужним, і, щоб зрозуміти всі його можливості - вам слід приділити частину свого часу, читаючи про це на php.net. Щоб повністю відповісти на ваше запитання - так, ви можете динамічно налаштовувати параметр часового поясу (на кожній ітерації під час читання з db ви можете створити новий об’єкт DateTimeZone ()).