Привет, сегодня я столкнулся с проблемой конверсий с отметками времени. В моей веб-форме я использую bootstrap-datepicker, где пользователи могут выбирать дату и время. После этого я конвертирую эти значения с moment.js в unix timestamp и передать его на страницу PHP. На странице PHP, если пользователь находится в другой стране, значение отличается и в конце в базу данных вставлено неправильное значение. Итак, как часовой часовой пояс сервера Латвия/Рига GMT + 2 и пользователь от Грузия/Тбилиси имеет GTM + 4. Он выбирает дату начала 12.01.2017 15:00, Moment.js передает его на страницу PHP в DB значение даты начала вставляется 12.01.2017 13:00.Проблема с датой и временем - это разговор в зависимости от местного часового пояса
Вот код из Js
var start_date = $("#start_date").val();
var start_time = $("#start_time").val();
var start = moment.utc(start_date + ' ' + start_time, "DD.MM.YYYY HH:mm").tz("Europe/Riga");
после вар передается через AJAX для PHP скрипт как start.unix()
В PHP получает
$startDate = date('Y-m-d H:i:s', $_GET['start']);
А время получили 2 часов назад .. Что я могу сделать, чтобы пользователь выбирал время из любого места в мире. PHP вставляет в БД, как он правильно выбирается без часовой пояс преобразование.
Вы лучше от всего сохраняя все время в UTC и сохраняя часовой пояс клиента отдельно. – GordonM