Pemformat Waktu Relatif
Mengkonversi tanggal dan timestamp ke string seperti '3 hari yang lalu' atau 'dalam 2 bulan'.
Tentang alat ini
Time Ago Formatter mengonversi tanggal absolut dan timestamp menjadi deskripsi waktu relatif yang dipahami secara alami oleh manusia, seperti '3 hari yang lalu' atau 'dalam 2 bulan'. Format ini sangat berguna dalam aplikasi chat, media sosial, feed aktivitas, dan alat manajemen proyek di mana menunjukkan kapan sesuatu terjadi lebih penting daripada menampilkan tanggal dan waktu yang tepat.
Cukup masukkan tanggal atau timestamp apa pun ke dalam alat, dan alat tersebut langsung menampilkan berapa lama waktu berlalu sejak saat itu atau seberapa jauh ke masa depan. Formatter menangani skala waktu berbeda secara cerdas—detik, menit, jam, hari, bulan, dan tahun—secara otomatis memilih unit paling bermakna untuk keterbacaan.
Alat ini sangat berharga bagi pengembang yang membangun aplikasi waktu nyata, pembuat konten yang mengelola posting dan pembaruan, dan siapa pun yang ingin memahami perbedaan waktu sekilas tanpa melakukan perhitungan mental.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.