Bugün sizlerle çok kullanışlı bir JavaScript yardımcı metodunu paylaşacağım. Bu metod, belirli bir geçmiş tarih ile şimdiki zaman arasındaki zaman farkını kullanıcı dostu bir biçimde göstermenize yardımcı olacak.
calculateTimeSince.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
export const calculateTimeSince = (pDate) => { const seconds = Math.floor((new Date() - pDate) / 1000); let interval = seconds / 31536000; if (interval > 1) { return Math.floor(interval) + ' years ago'; } interval = seconds / 2592000; if (interval > 1) { return Math.floor(interval) + ' months ago'; } interval = seconds / 86400; if (interval > 1) { return Math.floor(interval) + ' days ago'; } interval = seconds / 3600; if (interval > 1) { return Math.floor(interval) + ' hours ago'; } interval = seconds / 60; if (interval > 1) { return Math.floor(interval) + ' minutes ago'; } return Math.floor(seconds) + ' seconds ago'; }; |
Tüm farklı alternatifleri console da gösterebilmek için calculateTimeSince fonksiyonuna farklı parametreler göndereceğim. Fakat normalde en çok kullandığım yeri şu şekilde söyleyebilirim:
Örneğin admin panelinizde veritabanında kayıtlı tüm ürünleri listelediğinizi düşünün. Veritabanında her ürünün eklenme tarihi olacaktır. Siz tabloda ürünlerin eklenme tarihlerini tarih formatında göstermek yerine bu fonksiyon ile daha kullanıcı dostu bir şekilde gösterebilirsiniz. Yani;
2023-05-04T12:33:32.301Z yazmak yerine 3 months ago
2023-07-21T12:33:32.302Z yazmak yerine 14 days ago yazabilirsiniz.
index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import { calculateTimeSince } from './calculateTimeSince.js'; // İki yıl önceki bir tarih let pastDate = new Date(); pastDate.setFullYear(pastDate.getFullYear() - 2); console.log(calculateTimeSince(pastDate)); // Üç ay önceki bir tarih pastDate = new Date(); pastDate.setMonth(pastDate.getMonth() - 3); console.log(calculateTimeSince(pastDate)); // İki hafta önceki bir tarih pastDate = new Date(); pastDate.setDate(pastDate.getDate() - 14); console.log(calculateTimeSince(pastDate)); // Dört saat önceki bir tarih pastDate = new Date(); pastDate.setHours(pastDate.getHours() - 4); console.log(calculateTimeSince(pastDate)); // Otuz dakika önceki bir tarih pastDate = new Date(); pastDate.setMinutes(pastDate.getMinutes() - 30); console.log(calculateTimeSince(pastDate)); // Şu anın tarihi (Saniye cinsinden farkı göstermek için) console.log(calculateTimeSince(new Date())); |
Aşağıdaki komutu yazarak kodumuzu çalıştıralım.
1 2 3 |
node index.js |
Console Çıktısı:
2 years ago
3 months ago
14 days ago
4 hours ago
30 minutes ago
0 seconds ago
Umarım ‘Node.js de Zaman Farkını Hesaplama‘ başlıklı yazım sizin için faydalı olmuştur.
Bir sonraki yazımda görüşmek üzere.
Happy coding!