Devam Et
Logo
Blog

JavaScript getTime() ve Date() Fonksiyonları ile Tarihler Arası Fark

Merhaba arkadaşlar,

İnternette en çok aranan scriptlerden bir tanesi de geri sayım sayacıdır. Pek çok sitenin belli bir tarihde yapacağı bir açıklama veya bir tarihte duyuracağı bir ürün için kullandığı bu scriptin yapımı aslında çok basit. 

Temel olarak herşey javascriptin Date() fonksiyonu ile yapılıyor. Date() fonksiyonuna bir tarih verirsek o tarihin formatlanmış halini bize verir, tarih vermezsek ise o anın tarihini verir. Örnekle açıklayacak olursak şöyleki;

//Fonksiyona 10/29/2023 tarihini verelim...
var date1 = new Date("10/29/2023");
document.getElementById("main-date").innerHTML = date1;
// Ekran çıktısı : Sun Oct 29 2023 00:00:00 GMT+0300 (Türkiye Yaz Saati)

//Fonksiyona herhangi bir giriş değeri vermeyelim
var date1 = new Date();
document.getElementById("main-date").innerHTML = date1;
// Ekran çıktısı : Thu Aug 11 2016 10:47:23 GMT+0300 (Türkiye Yaz Saati) 

Örnekte de görüldüğü gibi herhangi bir giriş değeri verilmezse bize o anın tarihini ve saatini verecektir.

İşte yapacağımz temel işlemde verilen tarihten o anın tarihi çıkarmak. Böylece aradaki farkı bulabiliriz.

Tabi bu tarihlerin ekrana yazıldığı şekliyle farkını almak mümkün değil. Bunun için JavaScript'in getTime() fonksiyonundan faydalanıyoruz. getTime() fonksiyonu, verilen tarihin integer karşılığını üretir. Bu integer sayıların farkını alarak iki tarih arasındaki farkını bulabiliriz. Şöyleki;

//Bu kod ile, o anki tarihin integer karşılığını öğrenebiliriz.
var date2 = new Date();
document.getElementById("main-date").innerHTML = date2.getTime();
//Ekran çıktısı: 1470902338506 

Şimdi gelelim tarihlerin farkını alıp ekrana yazdırmaya;

Önce kodu verip sonra kod üzerinde gerekli açıklamaları yapayım sizlere;

var date1 = new Date("10/29/2023"); //Verilen tarih
var date2 = new Date(); //Anlık zaman
var timeDiff = Math.abs(date1.getTime() - date2.getTime()); //İki tarihin integer farkı
var diffSecs = Math.ceil(timeDiff / (1000))%60; //Sonuç
document.getElementById("main-date").innerHTML = diffSecs;

Burada öncelikle verdiğimiz tarihin ve anlık tarihin formatlanmış hallerini birer değişkene atadık. Daha sonra bu değişkenlerdeki tarihlerin integer karşılıklarını alıp farkını hesapladık. Çıkan sonuç milisaniye cinsindedir. Bu yüzden bunu 1000'e bölerek saniye karşılığını bulduk. Ancak her 60 saniye bir dakikaya tekabül ettiğinden (ekranda "14874 saniye" gibi bir ifade yazmaması için) bu ifadenin de 60 ile modülasyonunu aldık ve ekrana bastırdık.

Aynı mantık ile timeDiff değişkenini 1000*60 'a böler ve yine 60 ile modülasyonunu alırsa dakika sayısını, 1000*60*60 'a böler ve 24 ile modülasyonunu alırsak saat  sayısını bulabiliriz.

JavaScript'in bu güzide fonksiyonlarının kullanımıda böyle arkadaşlar. Yine aklınıza takılan birşey olursa yorum kısmından sorarsanız yardımcı olmaya çalışırız. 

Lütfen yazılarımızı paylaşarak daha çok kitleye ulaşmamıza yardımcı olun :)

Author

Muhammed Yusuf TAŞKESENLİGİL

Hakkında: Hakkında: 2015 Haziran ayında KTÜ Bilgisayar Mühendisliği bölümünden mezun oldum. Yaklaşık 4 yıldır web teknolojileri üzerinde çalışıyorum. HTML, CSS, JavaScript ve PHP alanlarında proje geliştiriyorum. Teknolojiyi seven ve hayatının her alanında kullanan biriyim.

JS DataTable Dil Seçeneğini Değiştirme Önceki Yazı
JavaScript setInterval() Fonksiyonu Sonraki Yazı

0 Yorum

    Henüz hiç yorum eklenmemiş!

Bir Yorumda Sen Bırak