Как сделать скрипт обратного отсчета времени разный для всех пользователей сайта?
Привет, друзья.
Описание:
Есть задача сделать лендинг со счетчиком обратного отсчета времени. Загвоздка в том, что время на счетчике должно быть разное для каждого пользователя. Важный момент - пользователи НЕзарегистрированные, то есть обычные гости сайта.
Зашел гость на сайт (например по ссылке из своей почты (ссылка всегда одна и та же, не меняется)), дальше увидел предложение и отсчет времени.
Как реализовать для каждого пользователя разное время отсчета и чтобы при обновлении страницы у пользователя, который уже заходил на страницу счетчик не обновлялся, а продолжал отсчитывать дальше?
Может при заходе на страницу брать на php текущее время и к нему прибавлять максимально доступное время предложения? Например макс время 3 часа (10800 секунд). Тогда 10800 + текущее время в секундах = конвертируем получаемую сумму в секунды. Но что если человек зашел, допустим, с Дальнего Востока, где разница с Москвой 6 часов, то что ему выведет `echo date("H:i:s")`? Время по Москве или время в его регионе? Если по Москве тогда этот вариант с текущим временем не вариант.
Пропуская решение проблемы с временем - можно записать в куки полученный результат, а при загрузке страницы проверять пустая ли Кука и если не пустая, то брать время из куки и пихать в счетчик для отсчета.
В общем я не прошу писать за меня скрипт, а прошу подсказать логику его работы. Если тебе показался этот вопрос недостойным твоего ответа, то не надо ставит минус, а проходи мимо.
Если все ссылки для каждого пользователя уникальный, то хранить время старта или окончания таймера на сервере.
Если же ссылка одна на всех, то разве что локалсторедж остаётся, но зайди он с другого устройства, браузера или банально очистив он сторедж, то всё, время сбросится.
1. Сохраняйте все возможные уникальные данные о данном визите (визитах) госте в таблицу типа: ip, user agent и т д. Всё, что вам нужно.
2. Далее выбирайте дату последнего визита из базы данных на основе ip. Но учтите, что один IP может быть у нескольких гостей, например, роутер с которого все сидят. Поэтому можно еще и проверять устройство пользователя.
Дальше, думаю, разберётесь) В куках не удобно. Очистив куки человек может иметь новый таймер на вашем сайте. Более продвинутые будут этим пользоваться. А история визитов вам понадобится может и не только для этих целей. Даже для посещений своих клиентов с аккаунтом на вашем сайье. Например, если человек имеет аккаунт на вашем сайте и авторизован, то в таблице визитов может быть колонка user_id, которая для гостей будет null.
Всё реализуется на клиенте в JS. Минус в том, что у одного и того же человека на компе и в телефоне будут щёлкать разные таймеры.
Сохранять в браузере Unix timestamp некого момента в будущем, до которого и показывать оставшееся время.
Смотреть, есть ли у пользователя в LS или куках сохранённый ранее timestamp.
Если нет — сгенерить случайный время-Ч в допустимом диапазоне и сохранить в LS или куках.