Просмотр поста

.
ДоХтор
Добавлено: 02.10.2017 / 12:54
Sitego, посмотри на этот пример :
* (+/-)
// Тут запросом из базы ты достал значение Europe/Berlin,
// которое к примеру лежит в массиве $row['tz']
// тогда просто подставь его в массив $users_time_zones, и получишь на выходе нужное смещение :

// Для демонстрации принципа явно присвоим в массив временнУю зону юзера
$row['tz'] = 'Europe/Berlin';

// Допиши в массив недостающие временные зоны
$users_time_zones = [
    'Europe/Moscow' => 3,
    'Europe/London' => 0,
    'Europe/Berlin' => -1
];

echo $users_time_zones[$row['tz']]; // Вернёт -1


Добавлено: 02.10.2017 / 19:46
Вариант с массивом пожалуй не вариант, гг, т.к. надо для всех таймзон писать огромный массив (или просто написать парсер таймзон из мануала) ... Я тут по-гуглил, и на основе просмотренного набросал такой вариант
* (+/-)
<?php

date_default_timezone_set('UTC');

$timezone = 'Europe/Berlin';

$offset = timezone_offset_get(timezone_open($timezone), new DateTime);

$offset = ($offset / 3600) - 3;

var_dump($offset);
Тебе надо будет в переменную $timezone сохранять таймзону из твоей базы, и потом работать со смещением из переменной $offset. Проверь, правильно ли работает?