blackseabreathe
@blackseabreathe
brackets

Как сделать скрипт обратного отсчета времени разный для всех пользователей сайта?

Привет, друзья.

Описание:
Есть задача сделать лендинг со счетчиком обратного отсчета времени. Загвоздка в том, что время на счетчике должно быть разное для каждого пользователя. Важный момент - пользователи НЕзарегистрированные, то есть обычные гости сайта.

Зашел гость на сайт (например по ссылке из своей почты (ссылка всегда одна и та же, не меняется)), дальше увидел предложение и отсчет времени.

Как реализовать для каждого пользователя разное время отсчета и чтобы при обновлении страницы у пользователя, который уже заходил на страницу счетчик не обновлялся, а продолжал отсчитывать дальше?

Может при заходе на страницу брать на php текущее время и к нему прибавлять максимально доступное время предложения? Например макс время 3 часа (10800 секунд). Тогда 10800 + текущее время в секундах = конвертируем получаемую сумму в секунды. Но что если человек зашел, допустим, с Дальнего Востока, где разница с Москвой 6 часов, то что ему выведет `echo date("H:i:s")`? Время по Москве или время в его регионе? Если по Москве тогда этот вариант с текущим временем не вариант.

Пропуская решение проблемы с временем - можно записать в куки полученный результат, а при загрузке страницы проверять пустая ли Кука и если не пустая, то брать время из куки и пихать в счетчик для отсчета.

В общем я не прошу писать за меня скрипт, а прошу подсказать логику его работы. Если тебе показался этот вопрос недостойным твоего ответа, то не надо ставит минус, а проходи мимо.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
1. Сохраняйте все возможные уникальные данные о данном визите (визитах) госте в таблицу типа: ip, user agent и т д. Всё, что вам нужно.

2. Далее выбирайте дату последнего визита из базы данных на основе ip. Но учтите, что один IP может быть у нескольких гостей, например, роутер с которого все сидят. Поэтому можно еще и проверять устройство пользователя.

Дальше, думаю, разберётесь) В куках не удобно. Очистив куки человек может иметь новый таймер на вашем сайте. Более продвинутые будут этим пользоваться. А история визитов вам понадобится может и не только для этих целей. Даже для посещений своих клиентов с аккаунтом на вашем сайье. Например, если человек имеет аккаунт на вашем сайте и авторизован, то в таблице визитов может быть колонка user_id, которая для гостей будет null.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
Всё реализуется на клиенте в JS. Минус в том, что у одного и того же человека на компе и в телефоне будут щёлкать разные таймеры.

Сохранять в браузере Unix timestamp некого момента в будущем, до которого и показывать оставшееся время.

Смотреть, есть ли у пользователя в LS или куках сохранённый ранее timestamp.
Если нет — сгенерить случайный время-Ч в допустимом диапазоне и сохранить в LS или куках.

Щёлкать секундами, оставшимися до момента.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы