Tarih hesaplamaları
- JavaScript kursu
- Orta seviye
- Ders 116/134
- 5 dk
Timestamp kullanarak iki tarih arasındaki farkı ve tarih karşılaştırmayı öğrenirsin.
Tarih hesaplamaları
İki tarihin farkını bulmak için timestamp'lerini kullanırsın. getTime milisaniye cinsinden timestamp verir.
const a = new Date('2024-01-01');
const b = new Date('2024-02-01');
const diff = b.getTime() - a.getTime();diff milisaniye cinsinden farktır. Bunu güne çevirmek için bir gündeki milisaniye sayısına bölersin. Bu yöntem tarih karşılaştırmasının temelidir.
Güne çevirme ve karşılaştırma
Bir gün 24 * 60 * 60 * 1000 milisaniyedir. Farkı bu sayıya bölüp Math.floor ile aşağı yuvarlarsın.
const MS_PER_DAY = 24 * 60 * 60 * 1000;
const days = Math.floor(diff / MS_PER_DAY);Math.floor ondalığı atar, böylece tam gün sayısını alırsın. İki tarihi karşılaştırmak için getTime değerlerini de kullanabilirsin; JavaScript tarihleri otomatik olarak timestamp'e çevirir.
Uygulama İki tarih arasındaki gün farkını hesapla
start ve end iki tarih. MS_PER_DAY sabitine 24 * 60 * 60 * 1000 ata, farkı getTime ile al ve Math.floor ile güne çevirip console.log ile yazdır.
Başlangıç kodu
const start = new Date('2024-01-01');
const end = new Date('2024-02-01');
// MS_PER_DAY sabitini tanımla
// farkı güne çevir ve yazdırÖrnek çözüm
const start = new Date('2024-01-01');
const end = new Date('2024-02-01');
const MS_PER_DAY = 24 * 60 * 60 * 1000;
const diffMs = end.getTime() - start.getTime();
const days = Math.floor(diffMs / MS_PER_DAY);
console.log(days);Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İki tarih arasındaki farkı gün cinsinden bulmak için ilk adım ne olmalıdır?
- Ay farkını doğrudan çıkar
- Farkı milisaniye cinsinden al, sonra gün sayısına böl Doğru cevap
- getDay ile hafta gününü al
- toISOString ile karşılaştır
Açıklama: Önce milisaniye farkını alıp bir gündeki milisaniyeye bölersin.
2 Bir gündeki milisaniye
const MS_PER_DAY = ____;
const MS_PER_DAY = 24 * 60 * 60 * 1000;
Açıklama: 24 saat * 60 dk * 60 sn * 1000 ms bir günü verir.
3 Hesap parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
getTime() |
timestamp verir |
date1 - date2 |
fark (ms) |
24*60*60*1000 |
günde ms |
Math.floor() |
aşağı yuvarlar |