All you really need is a way of knowing when to reset the counter, and a possibility to really reset the counter.
The crontab is ideal for this, but since you say you don't want to use it....
All you have to do is change your rating script so that it can somehow read when the data it updates was last updated. If that date is in the previous day, it must first reset the data.
In MySQL this is simply a matter of comparing now() to the timestamp or datetime of the changed data.
(if you only update one record that keeps the rating)
You can compare dayofyear(date_time_field) to dayofyear(now()) and if the now() is one day later than the date_time_field, you need to reset the data.
You could also decide to just store each and every vote in a table, and use a select query to get the results.
Then you could change the select statement to only select data from a certain date.
That would give you a nice history of what the stats were for any given day.