Сведения о вопросе

PASHA

02:50, 7th August, 2020

Теги

php   mysql   datetime   date   timezone    

Работа с PHP сервером и MySQL сервером в разных часовых поясах

Просмотров: 466   Ответов: 2

Для тех из нас, кто использует стандартные пакеты общего хостинга, такие как GoDaddy или сетевые решения, как вы обрабатываете конверсии datetime, когда ваш хостинг-сервер (PHP) и MySQL сервер находятся в разных часовых поясах?

Кроме того, есть ли у кого-нибудь рекомендации по определению часового пояса, в котором находится посетитель вашего сайта, и соответствующим образом манипулирует переменной datetime?



  Сведения об ответе

ASER

01:23, 25th August, 2020

Начиная с PHP 5.1.0 вы можете использовать функцию date_default_timezone_set() для установки значения по умолчанию timezone, используемого всеми функциями даты и времени в скрипте.

Для MySql (цитируется со страницы поддержки часового пояса сервера MySQL )

До MySQL 4.1.3 сервер работает только в системном часовом поясе, установленном при запуске. Начиная с MySQL 4.1.3, сервер поддерживает несколько параметров часового пояса, некоторые из которых могут быть изменены во время выполнения.

Вас интересует настройка часовых поясов для каждого соединения, которую вы будете использовать в начале ваших скриптов

SET timezone = 'Europe/London';

Что касается определения параметра client timezone, вы можете использовать бит JavaScript, чтобы получить и сохранить эту информацию в файле cookie, а затем использовать его при последующих чтениях страницы, чтобы вычислить правильный timezone.

//Returns the offset (time difference) between Greenwich Mean Time (GMT) 
//and local time of Date object, in minutes.
var offset = new Date().getTimezoneOffset(); 
document.cookie = 'timezoneOffset=' + escape(offset);

Или вы можете предложить пользователям chioce самостоятельно устанавливать свои часовые пояса.


  Сведения об ответе

SKY

22:28, 5th August, 2020

Храните все как UTC. Конверсии можно выполнять на уровне клиента или на стороне сервера, используя параметры клиента.

php-дата

mysql - ютц-timestamp


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться