Comment faire du temps relatif dans rails ?

Créé le 09 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - ruby-on-railsruby

Rails fournit une variété de méthodes pour travailler avec des dates et des heures. Le temps relatif, ou le temps écoulé depuis un événement spécifique, est l'une des principales méthodes. Il est très facile de le mettre en œuvre dans un projet Rails, et cela peut être fait en utilisant la méthode time_ago_in_words() disponible dans le contrôleur. Cette méthode prend en charge les arguments facultatifs qui peuvent être passés à la fonction pour modifier le format et le temps de formatage retourné. Par exemple, si vous souhaitez afficher le temps écoulé depuis la date d'aujourd'hui, vous pourriez utiliser le code suivant :

# Affiche le temps écoulé depuis aujourd'hui
time_ago_in_words(Time.now)

Comment modifier le format de temps relatif dans Rails ?

Le temps relatif dans Rails peut être modifié en passant des arguments optionnels à la méthode time_ago_in_words(). Par exemple, si vous souhaitez afficher le temps écoulé sous la forme d'un nombre de jours et de minutes, vous pouvez utiliser le code suivant :

# Affiche le temps écoulé sous la forme d'un nombre de jours et de minutes
time_ago_in_words(Time.now, only: [:days, :minutes])

Comment afficher le temps relatif à partir d'une date spécifique ?

Vous pouvez afficher le temps relatif à partir d'une date spécifique en passant la date à la méthode time_ago_in_words(). Par exemple, si vous souhaitez afficher le temps écoulé depuis le 1er janvier 2020, vous pourriez utiliser le code suivant :

# Affiche le temps écoulé depuis le 1er janvier 2020
time_ago_in_words(Date.new(2020, 1, 1))

Comment afficher le temps relatif à partir d'une date et d'une heure spécifiques ?

Vous pouvez afficher le temps relatif à partir d'une date et d'une heure spécifiques en passant la date et l'heure à la méthode time_ago_in_words(). Par exemple, si vous souhaitez afficher le temps écoulé depuis le 1er janvier 2020 à 12h00, vous pourriez utiliser le code suivant :

# Affiche le temps écoulé depuis le 1er janvier 2020 à 12h00
time_ago_in_words(DateTime.new(2020, 1, 1, 12))

Comment afficher le temps relatif dans un autre format ?

Vous pouvez afficher le temps relatif dans un autre format en passant l'argument :format à la méthode time_ago_in_words(). Par exemple, si vous souhaitez afficher le temps écoulé sous la forme d'un nombre d'heures et de minutes, vous pourriez utiliser le code suivant :

# Affiche le temps écoulé sous la forme d'un nombre d'heures et de minutes
time_ago_in_words(Time.now, format: "%h %m")

Comment afficher le temps relatif sans le temps de formatage ?

Vous pouvez afficher le temps relatif sans le temps de formatage en passant l'argument :include_seconds à la méthode time_ago_in_words(). Par exemple, si vous souhaitez afficher le temps écoulé sans le temps de formatage, vous pourriez utiliser le code suivant :

# Affiche le temps écoulé sans le temps de formatage
time_ago_in_words(Time.now, include_seconds: false)