У меня есть сайт, который загружает данные в таблицу MySQL.Две записи в таблице - это «дата начала» и «дата окончания».'startdate' автоматически с использованием CURRENT_TIMESTAMP.'enddate' выбирается пользователем с помощью средства выбора даты.
Это создает проблему, если пользователь находится в другом часовом поясе, чем сервер.Например (я нахожусь в Тихоокеанском часовом поясе, сервер в Центральном).Если я создаю запись в 17:00 и выбираю дату окончания в 22:00, она попадает в базу данных как 7:00 и 22:00, создавая 3-часовое окно вместо 5. Я хочу преобразовать дату окончания в центральное время (то же самое).как сервер).Итак, используя мой пример, я бы хотел, чтобы записи в базе данных были 7 вечера и 12 часов ночи.
Я могу получить смещение часового пояса пользователя с помощью этого javascript:
var d = new Date();
var timezone = -d.getTimezoneOffset()/60;
Это возвращает -7 (я в GMT-8, я предполагаю, что разница в 1 час связана с переходом на летнее время).Моя первая мысль о решении - предположить, что сервер находится в -5, и сравнить два (возвращаясь к моему примеру, -5 - -7 = 2, поэтому добавьте 2 к «конечной дате»).
Проблема возникает, когда мы переключаемся на стандартное время.Я предполагаю, что мой javascript начнет возвращать -8 вместо -7, нарушая мою функцию.Я знаю о PHP date_default_timezone_get (), но это возвращает строку вместо числа.Полагаю, мне нужна похожая функция, которая (для центрального времени) возвращает -5 при переходе на летнее время и -6 в стандартное время.