У меня есть очень простое решение для вас, если вы хотите иметь таблицу, посвященную счетчику попаданий, вместо того, чтобы хранить свой счетчик попаданий в таблице настроек...
+----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| date | date | NO | PRI | NULL | |
| hitcount | int(11) | YES | | NULL | |
+----------+---------+------+-----+---------+-------+
Чтобы обновить количество попаданий, просто выполните
INSERT INTO `hitcount` VALUES (CURDATE(), 1) ON DUPLICATE KEY UPDATE hitcount = hitcount + 1;
Таким образом, вам не только не нужно сбрасывать счетчик, но и у вас будет ежедневная статистика!!!
Примечание. Что касается часового пояса конечного пользователя, вы не можете надежно получить эту информацию со стороны сервера (вы можете попытаться определить чье-либо местоположение с помощью IP, но это ненадежно). Таким образом, вам нужно как-то получить это от пользователя (например, с помощью javascript из браузера пользователя или заставить пользователя ввести это, и вы сохраните его где-нибудь)
Если вы действительно хотите использовать часовой пояс пользователя для дат, это может стать намного сложнее, и я не рекомендую этого делать. Просто используйте дату сервера.
Обновление: в зависимости от того, чего вы на самом деле пытаетесь достичь (чего ваш вопрос нам не дает, вы только спросили о реализации), существует множество способов справиться с этим. Мой ответ представляет собой интерпретацию вашего вопроса с использованием 24 часов в качестве намека на то, что вы хотите ежедневно сбрасывать счетчик.
person
Populus
schedule
22.08.2014
TIME_NOW
- Я так понимаю, вы уже объявили его константой? - person Funk Forty Niner   schedule 22.08.2014TIME_NOW
, чтобы получить$timer
, как вы ожидаете, что это ($timer
) когда-либо будет чем-либо, кроме меньшего, чемTIME_NOW
? - person Patrick Q   schedule 22.08.2014TIME_NOW
на самом деле равноtime()
- person user2854563   schedule 22.08.2014strtotime
для преобразования времени. - person Funk Forty Niner   schedule 22.08.2014strtotime
в моем случае? - person user2854563   schedule 22.08.2014var_dump(TIME_NOW);
иvar_dump($timer);
для проверки значений? - person Patrick Q   schedule 22.08.2014$now = TIME_NOW; $timer = TIME_NOW - 60*60*24; if ($timer < $now){...}
и дать ему отправную точку. - person Funk Forty Niner   schedule 22.08.2014