Javascript neden günleri ve ayları farklı şekilde ele alıyor?


42

JavaScript’de, a oluşturulurken Dateayların sıfır olduğunu ve günlerin olmadığını fark ettim .

Örneğin:

var foo = new Date(2012, 1, 1)

1 Şubat 2012’yi üretti

Bu neden?


6
months = ['Jan', 'Feb',..., 'Nov', 'Dec']; month = months[date.getMonth()];
zzzzBov

Yanıtlar:


50

Büyük olasılıkla fikir, ayların basitçe "sayılır" olduğu halde ayların bir ay isimleri dizisine endeks olarak düşünüldüğüdür.


21
Bunun bir cevap açısından bakıldığında, bu mantığın ne zamandan beri etrafta olduğunu ve daha önce hiç sorgulamadığımı düşünmek saçma sapan bir şey.
15'te

2
@rlemon Daha önce hiç mantık sormadığınız gerçeği, bunun sadece mantıklı olduğunu kanıtlıyor :)
dasblinkenlight

14
FWIW, hiç anlamlı olmadığını düşünmemiştim. JavaScript’te işlem tarihleri ​​her zaman beni ürperten bir şeydi, çünkü garip sonuçlar için hata ayıklamaya başlayana kadar genellikle böyle şeyleri unuturdum.
FrustratedWithFormsDesigner

2
FWIW, ben bir ön uç geliştiricisi değilim ve sık sık ara sıra bir kenara Javascript'teki tarihlerle uğraşmak zorunda kalmıyorumnew Date().getTime()
rlemon

20
Javascript’e gelince, “bu yüzden bunu yaptılar” ve “bu iyi bir anlam ifade ediyor” nadiren birlikte duyduğunuz iki şey.
Tridus

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.