В БД заношу время в формате time(), т.е. в секундах. Когда клиенту возвращается время операции, то он видит серверное время, а не свое. Как правильно конвертировать серверное время?
Как идея - это узнать время в секундах на устройстве, с запросом отправить это время на сервер. Там вычислить разницу.
Подскажите, если у кого есть готовый алгоритм и код.
Функция time()
, которую вы используете, возвращает UNIX-timestamp, который в свою очередь примечателен тем, что не зависит от часового пояса(секунды отсчитываются по Гринвичу).
Передав его на клиент, вы можете инстанциировать объект даты с его помощью, причём дата будет интерпретировать UNIX-timestamp корректно, с учётом текущего часового пояса клиента.
Единственный момент, который нужно учесть - в js timestamp задаётся в миллисекундах:
//let ts = <?=time()?>;
let ts = 1488575448;
let now = new Date(ts * 1000);
console.log(now.toTimeString());
// Разумеется, время можно форматировать самостоятельно
console.log(
[
now.getHours(),
now.getMinutes(),
now.getSeconds()]
.map(d => d < 10 ? '0'+d : d)
.join(':'));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
alert выводит только значения, состоящие из цифрЕсли "подмешиваю" буквы - появляется ошибка Uncaught ReferenceError: yyyyyyyy is not defined
Здравствуйте! Есть тестирование из 5 вопросов - 5 "вкладок" с вопросами и кнопка "Завершить тест"В конце выдает результат сколько правильных...
Установил на сайте slick-слайдер и адаптировал его через responsive под разные размеры экранаТак получается, что для экранов менее 460px показывать...