Formateur de Temps Relatif
Convertit les dates et horodatages en chaĂźnes comme 'il y a 3 jours' ou 'dans 2 mois'.
Ă propos de cet outil
Le Formateur de Temps ĂcoulĂ© convertit les dates absolues et les horodatages en descriptions de temps relatif que les humains comprennent naturellement, comme '3 jours ago' ou 'dans 2 mois'. Ce format est particuliĂšrement utile dans les applications de chat, les rĂ©seaux sociaux, les fils d'activitĂ© et les outils de gestion de projet oĂč afficher quand quelque chose s'est produit importe plus que d'afficher la date et l'heure exactes.
Il suffit d'entrer une date ou un horodatage dans l'outil, et il affiche instantanĂ©ment il y a combien de temps ce moment s'est produit ou Ă quelle distance dans le futur il se trouve. Le formateur gĂšre intelligemment les diffĂ©rentes Ă©chelles de tempsâsecondes, minutes, heures, jours, mois et annĂ©esâen sĂ©lectionnant automatiquement l'unitĂ© la plus significative pour la lisibilitĂ©.
Cet outil est inestimable pour les dĂ©veloppeurs qui construisent des applications en temps rĂ©el, les crĂ©ateurs de contenu qui gĂšrent les publications et les mises Ă jour, et quiconque souhaite comprendre les diffĂ©rences de temps d'un coup d'Ćil sans faire de calculs mentaux.
Questions Fréquentes
Implémentation du Code
from datetime import datetime, timezone
def time_ago(past: datetime, now: datetime = None) -> str:
"""Return human-readable relative time string."""
if now is None:
now = datetime.now(timezone.utc)
diff = now - past
total_seconds = int(diff.total_seconds())
if total_seconds < 0:
return "in the future"
minutes = total_seconds // 60
hours = minutes // 60
days = hours // 24
months = days // 30
years = days // 365
if total_seconds < 60:
return f"{total_seconds} second{'s' if total_seconds != 1 else ''} ago"
elif minutes < 60:
return f"{minutes} minute{'s' if minutes != 1 else ''} ago"
elif hours < 24:
return f"{hours} hour{'s' if hours != 1 else ''} ago"
elif days < 30:
return f"{days} day{'s' if days != 1 else ''} ago"
elif months < 12:
return f"{months} month{'s' if months != 1 else ''} ago"
else:
return f"{years} year{'s' if years != 1 else ''} ago"
# Examples
from datetime import timedelta
now = datetime(2025, 6, 15, 12, 0, 0, tzinfo=timezone.utc)
print(time_ago(now - timedelta(seconds=30), now)) # 30 seconds ago
print(time_ago(now - timedelta(minutes=45), now)) # 45 minutes ago
print(time_ago(now - timedelta(days=3), now)) # 3 days ago
print(time_ago(now - timedelta(days=400), now)) # 1 year agoComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.