Как выполнять действие каждые 24 часа?
Заводите таблицу в БД с двумя полями:user_id - Идентификатор пользователяlast_button_click_at - Время последнего клика пользователя по кнопке
При клике на кнопку, в момент отправки запроса на сервер проверяете прошло ли с этого времени 24 часа. Если да, то проводите нужные действия и пишите в last_button_click_at текущее время. Если не прошло, то ничего не делаете (можете вернуть ошибку).
При формировании страницы для пользователя проверяете last_button_click_at на 24х часовой интервал и если времени прошло меньше - блокируете кнопку.
Таким образом, не надо заводить никаких кронов, не нужно танцевать с преобразованием времени клиента в серверное (часовые пояса и так далее). Даже если пользователь разблокирует кнопку или пошлёт запрос руками, серверная проверка заблокирует сами действия.upd: Ну и начальное значение таймера на странице выставлять в соответствии с полем last_button_click_at. Думаю это понятно.
Лучше это сделать на клиенте. При нажатии нужно класть unix time + 24 часа строку в куки. При загрузке через js подключить какой нибудь таймер, временем конца считать то, что лежит в куках. Перед инициализацией плагина обратного отсчета проверять, не прошло ли время и есть ли оно вообще в куках.