Было бы лучше, если бы вы хранили его TimeZone. У людей в разных частях света разное время, поэтому начало дня будет разным для каждого из них.
Вы можете получить текущую дату и текущее время. Проверьте, сколько сообщений было сделано с начала дня 00:00
в этот день. Если число равно 4, то сообщите пользователю, что он достиг максимального предела.
Используя NOW()
, вы можете использовать для получения текущей даты и времени
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2009-10-22 10:49:15 |
+---------------------+
1 row in set (0.00 sec)
Вы должны знать, в каком часовом поясе находится ваш сервер, затем укажите время UTC и добавьте / вычтите время, чтобы получить местное время пользователя.
Вы, вероятно, хотели бы взглянуть на Данные и время MySQL
DATE()
- получить текущую дату
CURTIME()
- Получить текущее время
CONVERT_TZ
- преобразование из одного часового пояса в другой
Как получить начало дня в базе данных
Это не должно быть проблемой, как я уже сказал, получить текущее время из БД, скорректировать разницу во времени, чтобы сделать время UTC. затем настройте часовой пояс пользователя, чтобы сделать время в соответствии с его часовым поясом.
например. 3:30
(время сервера) - 1:00
(часовой пояс сервера) + 5:30
(часовой пояс пользователя) = 8:00
(время пользователя)
Итак, начало дня для этого пользователя - 00:00, и у него прошло 8 часов.
N.B .: Позаботьтесь о разнице во времени. например 2:30
- 3:30
= -1:00
, что означает 23:00
в предыдущий день. Примите это также во внимание.