-1
votes

Ruby: Trouvez le prochain horodatage

Si on me donne un délai spécifique dans HH: mm format comme: 22:00 , comment puis-je obtenir le prochain horodatage lorsque je peux planifier cet événement. < / p>

Par exemple:

Si l'heure actuelle est 22e avril 23:30 , il devrait donner comme 23 au 23 avril 22:00 (le format UTC est ok, date écrite uniquement pour référence) < / p>

Si l'heure actuelle est 22e avril 18:00 Il devrait donner comme 22 avril 22:00


0 commentaires

3 Réponses :


0
votes
require 'time'

✎ today_hour_x = DateTime.parse("22:00")
✎ today_hour_x + (today_hour_x - DateTime.now > 0 ? 0 : 1)
#⇒ #<DateTime: 2019-04-22T22:00:00+00:00 ...>
✎ today_hour_x = DateTime.parse("10:00")
✎ today_hour_x + (today_hour_x - DateTime.now > 0 ? 0 : 1)
#⇒ #<DateTime: 2019-04-23T10:00:00+00:00 ...>

0 commentaires

0
votes

Vous pouvez le codentif dur 22, mais comme une idée d'une approche plus flexible: xxx

mon heure locale est maintenant le 22 avril 16:16. Donc, par exemple: xxx

dans les rails, vous pouvez également utiliser date.tomorrow , temps.now + 1.day et d'autres choses agréables


0 commentaires

0
votes
require 'date'

def event_time(time_str)
  t = DateTime.strptime(time_str, "%H:%M").to_time
  t >= Time.now ? t : t + 24*60*60
end

Time.now
  #=> 2019-04-22 12:13:57 -0700 
event_time("22:00")
  #=> 2019-04-22 22:00:00 +0000 
event_time("10:31")
  #=> 2019-04-23 10:31:00 +0000 

0 commentaires