Quando um usuário é capaz de executar uma ação apenas uma vez por dia, por exemplo, obter um ingresso gratuito para uma competição, há duas possibilidades que me deparei na minha experiência.
1) Reset de 24 horas
Se ele executar a ação no dia 1 às 23h45, ele poderá executar a ação novamente novamente no dia 2 ou depois das 23h45. Ele não poderá fazer 11:44 no dia 2.
2) Redefinição da meia-noite (ou qualquer horário fixo)
Independentemente da hora em que o usuário executar a ação no dia 1, assim que ele virar meia-noite e o dia 2 começar, ele poderá executá-lo novamente.
Ambos limitam o usuário a executar apenas uma ação por dia, mas geralmente encontro o método 1, que considero bastante inconveniente por dois motivos:
- Primeiro eu tenho que esperar o tempo
- e segundo, por um longo período, o registro de data e hora de minha execução será mais tarde e mais tarde, pois não poderei executar a ação exatamente nesse registro de data e hora todos os dias, apenas alguns segundos ou minutos depois.
Existe alguma razão técnica para preferir o método 1, embora na minha opinião seja uma importante desvantagem para o usuário declarada anteriormente?
Edite para especificar: estou falando especialmente de um exemplo, em que o intervalo de tempo real de 24 horas não é obviamente necessário, como no evento atual de giro livre de Theory11 , em que você recebe 1 giro grátis a cada 24 horas para ter uma chance em ganhar prêmios.