JavaScript'te Tarihlerin Otomatik Düzeltilmesi

JavaScript'in çok ilginç ve kullanışlı bir özelliği vardır: eğer Date nesnesi oluşturulurken geçersiz bir zaman noktası belirtilirse - otomatik olarak geçerli bir zamana yeniden hesaplanacaktır. Hadi bir örnekle inceleyelim.

Bildiğiniz gibi, 35 Ocak diye bir tarih yoktur. Ocak ayının mümkün olan maksimum günü - 31'dir. Sonuç olarak, 35 Ocak tarihimizin 4 fazla günü var. JavaScript böyle bir durumda bu fazla 4 günü bir sonraki aya ekleyecektir:

javascriptlet date = new Date(2018, 0, 35);
console.log(date); // 4 Şubat sonucunu verecek

Sadece fazla günleri değil, ayları da belirtebilirsiniz. Bu durumda, ayların sıfırdan başladığını ve dolayısıyla son geçerli ayın 11. ay olduğunu unutmamalısınız. Eğer 12. ayı belirtirseniz, bir sonraki yılın Ocak ayını elde edersiniz:

javascriptlet date = new Date(2018, 12, 1); // 12. ayı belirtiyoruz
console.log(date); // 1 Ocak 2019 tarihini verecek

Açıklanan düzeltme, daha küçük değerler için de çalışır. Bildiğiniz gibi, bir ayın en küçük günü 1 numaralı gündür. Bu nedenle, 0 numaralı günü belirtirseniz, önceki ayın son gününü elde edersiniz:

javascriptlet date = new Date(2018, 1, 0); // sıfırıncı günü belirtiyoruz
console.log(date); // 31 Ocak sonucunu verecek

Ayrıca gün ve ay için negatif değerler de belirtebilirsiniz. Bu durumda, minimum günün 1 numaralı gün olduğunu ve minimum ayın 0 numaralı ay olduğunu hatırlamalısınız. Bu, eksi birinci günün önceki ayın sondan 2. gününe denk geldiği ve eksi birinci ayın da bir önceki yılın son ayına denk geldiği anlamına gelir:

javascriptlet date = new Date(2018, 1, -1); // -1 gün belirtiyoruz
console.log(date); // 30 Ocak sonucunu verecek
javascriptlet date = new Date(2018, -1, 1); // -1 ay belirtiyoruz
console.log(date); // 1 Aralık 2017 tarihini verecek

Yukarıda söylenenlerin hepsi saat, dakika ve saniyelerle de benzer şekilde çalışır:

javascriptlet date = new Date(2018, 0, 1, 24, 0, 0); // 24. saati belirtiyoruz
console.log(date); // 2 Ocak, 0 saat sonucunu verecek
javascriptlet date = new Date(2018, 0, 1, 25, 0, 0); // 25. saati belirtiyoruz
console.log(date); // 2 Ocak, 1 saat sonucunu verecek
Задание 1

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 1, 35);
console.log(date); // hangi tarih olacak?
Задание 2

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 15, 1);
console.log(date); // hangi tarih olacak?
Задание 3

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 3, 31);
console.log(date); // hangi tarih olacak?
Задание 4

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 1, 31);
console.log(date); // hangi tarih olacak?
Задание 5

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 12, 33);
console.log(date); // hangi tarih olacak?
Задание 6

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 33, 33);
console.log(date); // hangi tarih olacak?
Задание 7

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 5, 0);
console.log(date); // hangi tarih olacak?
Задание 8

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 0, 0);
console.log(date); // hangi tarih olacak?
Задание 9

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, -12, -33);
console.log(date); // hangi tarih olacak?
Задание 10

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // hangi tarih olacak?
Задание 11

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // hangi tarih olacak?
Задание 12

JavaScript'in aşağıdaki zaman noktasını hangi tarihe dönüştüreceğini belirleyin:

javascriptlet date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // hangi tarih olacak?