Разве если не брать последний массив и проверять на вхождение, в него, скобокименно так, по представленному в вопросе примере таких нюансов не понять, тут уже сами адаптируйте алгоритм.
Ещё, просто пустое поле datetime? Или в нем должно что быть по умолчанию?это зависит от того как вы даете первый бонус, можете заносить туда дату регистрации и давать бонус не раньше суток после регистрации.
А как проверить прошли ли сутки?
Какие недостатки видите вы?