Что будет, если указать разные временные зоны в PHP и в MySQL? Будут какие-нибудь сдвиги при получении / сохранении даты?
Здравствуйте. Изучаю работу с временем в PHP и MySQL. И у меня появился вопрос. Что будет, если указать разные временные зоны в PHP и в MySQL? Будут какие-нибудь сдвиги при получении / сохранении даты? И вообще какие тут подводные камни есть? Что плохого может произойти, если в PHP и в MySQL будет разная Timezone?
всё будет в порядке Ровно до того времени пока вы не перейдете на зимнее или летнее время, и вот тут, в зависимости от того в какой стране прописана временная зона, спокойно может возникнуть разница в 1 час. опять же Это только в том случае если используется синтаксис mysql для вставки текущей даты, например функция now.
Проблемы будут только если вы передаете дату в виде строки без указания таймзоны. А если указывать (можно при подключении) или передавать unix timestamp, то все ок.
Stalker_RED, TIMESTAMP тоже поменяет свои значения. А DATETIME оставит как есть.
...если вы передаете дату в виде строки без указания таймзоны.
Что это означает? Можно как-то в MySQL отправить дату вместе с TimeZone, к которой эта дата принадлежит? И сохранить их вместе? Можете написать, как это сделать?
Храните и обрабатывайте время в одной таймзоне (к примеру UTC).
При получении времени с клиента передавайте так же его таймзону (или смещение), преобразовывайте в вашему стандартному и работайте с ним (пишите в базу и тд).