Si un train part dans moins d'une heure, je veux que sa rangée dans le tableau de calendrier soit surlignée en rouge. Actuellement, je fais le calcul comme ceci:Le meilleur moyen d'exprimer "moins d'une heure dans le futur" dans Rails?
if Time.zone.now + 1.hour > t[from_station]
# do whatever
end
Cela fonctionne et sorte de logique, mais je me demande s'il y a une façon plus claire/plus idiomatiques pour exprimer (je pourrais imaginer revenir à ce code dans un quelques mois et avoir à faire une pause pour un instant pour analyser mentalement Time.zone.now + 1.hour
).
Très bonne réponse. Est-il possible de faire fonctionner '1.hour.from_now' (qui semble être la façon la plus correcte d'exprimer cela) avec le fuseau horaire par défaut de l'application Rails (tel que défini dans environment.rb)? –
'from_now' prend un seul argument. Par défaut, il utilise 'Time.now'. Vous pouvez, bien sûr, le passer 'Time.zone.now' comme je l'ai fait avec' depuis '(ils sont en fait la même méthode). Si vous voulez que 'Time.now' soit réglé sur le fuseau horaire correct (afin que vous n'ayez même pas à fournir un argument), vous devez définir' ENV ['TZ'] '(ou la variable d'environnement' TZ') le fuseau horaire correct, aussi. – Pesto