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

Есть в базе данных дата пополнения баланса(Unix) и есть собственно баланс игрока. Я придумал только каждый раз считать сколько времени прошло (настоящее время (time() - $баланс игрока) / 3600. Дальше нахожу 10% от баланса, начисляю и все готово. Но проблема в том, что баланс постоянно меняется, и проценты автоматически умножаются если он увеличивается, или уменьшается не дожидаясь следующего часа. Время должно быть одинаковым, например пользователь положил 1000 в 14:47 в 15:47 капнуло 10% (100), если игрок положил деньги (например ещё одну тысячу) между 15:47 и 16:47 ,в 16:47 на балансе должно быть 2300. (100 за первый час от тычячи) и 200 за второй час от двух тысяч


Ответы (1 шт):

Автор решения: Алексей Шиманский

Нет смысла такие замудрёные вещи и вычисления делать. Достаточно опеределить жёсткое правило, например процент начисляется в начале каждого часа. Тогда всё для всех станет проще. А запускать скрипт пересчёта для пользователей запускать каждый час можно через Cron

https://ru.stackoverflow.com/a/466413/191482 - тут есть ссылки ещё

→ Ссылка