web-dev-qa-db-fra.com

Fonctions "date / heure" en Ruby / Rails

Je me demandais s’il existait un moyen Rails de calculer l’horodatage comme il ya une demi-minute, il y a 2 minutes, un jour, etc.). Quelque chose comme l’horodatage en temps réel de Twitter.

Je veux savoir si Ruby/Rails a une fonction intégrée pour une telle conversion date-heure?

86
kapso

Vous pouvez utiliser:

10.minutes.ago
2.days.since

Ou dans vos vues, vous avez les aides:

distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)

Vérifiez l'API pour plus de détails et plus d'options.

171
Toby Hede

Vous pouvez utiliser les méthodes disponibles pour obtenir le temps passé ou futur en utilisant ago , since alias pour from_now et de nombreuses méthodes disponibles

Time.current
#=> Tue, 20 Sep 2016 15:03:30 UTC +00:00

2.minutes.ago
#=> Tue, 20 Sep 2016 15:01:30 UTC +00:00

2.minutes.since
#=> Tue, 20 Sep 2016 15:05:30 UTC +00:00 

1.month.ago
#=> Sat, 20 Aug 2016 15:03:30 UTC +00:00

1.year.since
#=> Wed, 20 Sep 2017 15:03:30 UTC +00:00 

Vérifiez toutes les méthodes disponibles dans Time class

8
Deepak Mahakale

distance_du_mois_heure :

from_time = Time.now

distance_of_time_in_words(from_time, from_time + 50.minutes) # => about 1 hour
distance_of_time_in_words(from_time, 50.minutes.from_now) # => about 1 hour
distance_of_time_in_words(from_time, from_time + 15.seconds) # => less than a minute
distance_of_time_in_words(from_time, from_time + 15.seconds, include_seconds: true) # => less than 20 seconds

time_ago_in_words :

time_ago_in_words(3.minutes.from_now) # => 3 minutes
time_ago_in_words(3.minutes.ago) # => 3 minutes
time_ago_in_words(Time.now - 15.hours) # => about 15 hours
1
Dorian