Я создаю этот пост, чтобы получить подтверждение, что я правильно понимаю процесс, а также получить обратную связь по нескольким мелким деталям по решению проблемы время публикации отображается и сохраняется правильно для пользователей в разных часовых поясах.PHP отображение сохраненных данных времени и сохранение данных времени при учете разных часовых поясов
Сохранение времени
Первый шаг при получении часовой пояс пользователи, как часовой пояс формат, используя функцию яваскрипта, и хранить его в переменной сеанса. Например, переменная часовой пояс будет хранить GMT -4
$timezone=$_SESSION['time'];
Далее, как только у меня есть часовой пояс для пользователей. Когда пользователь делает сообщение, я сохраняю пост-время в базе данных mysql, мне нужно будет сохранить его в формате UTC. Как мне это сделать? В настоящее время, когда я храню данные времени. это происходит следующим образом. Мое поле штампа - формат даты и времени, и я хотел бы оставить его как можно больше, если это возможно.
INSERT INTO posts (stamp) VALUES (now())
Какую функцию я использую вместо now() для получения формата UTC, который затем будет вставлен в мою базу данных? Я предполагаю, что мне нужно использовать функцию php, которая будет использовать часовой пояс $ для получения даты UTC.
Отображение времени
Далее, только дата UTC хранится в БД. Мне нужно отобразить данные пользователю на основе переменной $ timezone, которую мы установили.
Так что, когда я показываю время, я в настоящее время сделать
echo date('F d', strtotime($list1['stamp']));
После того, как я сохранил данные, как время UTC, это покажет время UTC, но мне нужно, чтобы показать пользователь UTC смещения для их часовой пояс, поэтому мне нужно будет преобразовать $list['stamp']
в UTC время в часовой пояс пользователей, используя часовой пояс. Какую функцию я могу использовать для этого пользователя?
tl: dr Это должно быть все, что мне нужно для выполнения этой работы. сообщите мне, видите ли вы какие-либо предложения или элементы, которые я не учитывал, и если вы знаете, какие функции мне нужно использовать, чтобы преобразовать время в UTC для хранения в базе данных и какую функцию использовать для преобразования времени UTC для отображения пользователя с использованием переменной $ timezone.
Не правильный ответ, но я нашел класс DateTime и его метод setTimezone довольно полезным в прошлом. – Corbin
круто спасибо, я посмотрю на это. – arboles