Gün içerisinde bir çok yazılım dili ile kodlama yaptığınmda bazı bilgileri karıştırıyorum. “C# ta dizi böyle tanımlanmıyor muydu? Neden hata verdi şimdi bu?“, “Go ‘da ternary operator (?:) yok muydu ya? gibi cümleler kuruyorum kendi kendime. Ama sıklıkla karıştırdığım ve hergün kullandığım şey ise Tarih ve Saat. Farkettim ki özellikle Javascript ile kodlama yaparken her seferinde kolayına kaçıp Google ‘dan bakıyorum. Bugün bir yandan buna bir son vermek için öğrenirken, öğrendiklerimi de sizinle paylaşacağım.
Javascript Date objesi ile zamanda tek bir anı1 platform bağımsız olarak sunar. Date objesinin içinde 1.1.1970 UTC den itibaren geçen zamanın milisaniye cinsinden değeri bulunur. 1.1.1970 tarihinin sıfırıncı dakikası sıfırıncı saati epoch (sıfır zamanı) olarak tanımlanır. ECMA Epoch UTC ile uyumlu olarak 1.1.1970 i sıfır zamanı olarak almıştır. Örneğin Windows ‘un epoch time ‘ı 1.1.1601 dir. Epoch için daha fazla bilgi için buraya bakabilirsiniz.
Epoch time ‘ı Date objesine 0 parametresi geçerek oluşturabilirsiniz:
const epochTime = new Date(0); // epochTime Thu Jan 01 1970 02:00:00 GMT+0200 (GMT+03:00)
Date() fonksiyonunu çağırdığınızda şuan ki Tarih ve Saati string formatında size döner. Örneğin : Thu Aug 11 2022 16:38:29 GMT+0300 (GMT+03:00). new Date().toString() ‘i çalıştırmakla aynı şeydir.
Date.now() statik fonksiyonu güncel zamanı milisaniye cinsinden döndürür. // 1660290506307
Tarih objesi oluşturmanın birden çok yolu var :
- const today = new Date()
- const createDate = new Date(‘2000-12-17T03:22:00’)
- const recordDate = new Date(1660156586093)
Bunlardan daha fazlası da var ama ben çalışma zamanında çalıştığınız siteme göre hata vermeyecek olanları yazdım. Daha fazlası için buraya bakabilirsiniz.
Metodlar (Instance Methods)
Date objesi oluşturduktan sonra aşağıdaki metodlar ile istediğiniz değerleri alabilirsiniz :
const d = new Date()
– Gün bilgisi almak için (1-31) : d.getDate() // 23
– Haftanın gününü almak için (0-6) : d.getDay() // 5
– Ay bilgisi almak için (0-12) : d.getMonth() // 8
– Yılı almak için (4 digit) : d.getFullYear() // 2022
– Saat bilgisi almak için (0-24) : d.getHours() // 20
– Dakika bilsisi almak için (0-59) : d.getMinutes() // 9
– Saniye Bilgisi için (0-59) : d.getSeconds() // 56
Örneğin :
const date = new Date();
let gunAyYil = date.getDate() + '.' + date.getMonth() + '.' + date.getFullYear()
console.log(gunAyYil) // 24.8.2022
Aynı şekilde Date objesini set etmek (değer atamak, ayarlamak) için aşağıdaki metodları kullanıyoruz :
const d = new Date()
– Gün bilgisini değiştirmek için (1-31) : d.setDate()
– Ay bilgisi değiştirmek için (0-12) : d.setMonth()
– Yılı değiştirmek için (4 digit) : d.setFullYear()
– Saat bilgisi değiştirmek için (0-24) : d.setHours()
– Dakika bilsisi değiştirmek için (0-59) : d.setMinutes()
– Saniye bilgisini değiştirmek için (0-59) : d.setSeconds()
Örnek: Tarihe 1 gün eklemek
const date = new Date();
console.log(date); // Sat Sep 24 2022 13:03:58 GMT+0300 (GMT+03:00)
date.setDate(date.getDate() + 1)
console.log(date) // Sun Sep 25 2022 13:03:58 GMT+0300 (GMT+03:00)
Örnek: Tarihten 5 gün çıkarmak (5 gün öncesinin tarihini bulmak)
const date = new Date();
console.log(date); // Sat Sep 24 2022 13:03:58 GMT+0300 (GMT+03:00)
date.setDate(date.getDate() - 5)
console.log(date) // Sun Sep 19 2022 13:03:58 GMT+0300 (GMT+03:00)
Örnek : Tarihi yıl , ay , gün şeklinde almak : 2023-02-18 gibi
new Date().toISOString().split('T')[0];
Tüm methodları görmek için burayı tıklayın.
1- Zaman damgası (Timestamp), herhangi bir olayın ne zaman meydana geldiğini, genellikle saniyenin küçük bir kısmına yakın bir doğrulukta, tarih ve zaman olarak tanımlayan bir karakter veya kodlanmış bilgi dizisidir. (Kaynak: wikipedia.org)