2009-05-07 26 views
10

Javascript'te Date nesnesinin getDay() işlevini kullanarak bir haftanın gününü almaya çalıştım. Teoride, iyi çalışıyor, ancak bazen çıkışta bir gecikme var, bu nedenle işlev bir "4" döndürürse, "1" döndürür.Neden getDay yanlış değerler döndürüyor? (javascript)

E.g.

var date= new Date("2009","04","30"); 
alert(date.getDay()); // the function returns 6, should return 4 

var date= new Date("2009","05","01"); 
alert(date.getDay()); // the function returns 1, should return 5 

Bunun nedenini gerçekten bilmiyorum. Bu örnek IE8'den geliyor. FF 3 benzer davranır, ancak farklı değerler döndürür. İlki 7, 4 değil. İkincisi, IE8'de olduğu gibi.

Bunun neden olduğuyla ilgili herhangi bir fikrin var mı?

cevap

16

Ay sayısı sıfır tabanlı olduğundan, temel değil.

new Date("2009","04","30")may 30'unda, nisan değil 30 için Date nesnesi oluşturur.

o değil,

+0

Ben sebebi umrumda değil (o dayalı sıfır göstermesinin nedeni de yani o ... zamanda geri farklı bir sistem şekilde bazı yöntem olarak aynı şekilde davranır, muhtemelen tarihi bir) yeterince iyi. Sıfır tabanlı aylar STUPID'dir. Ama onlarla takılı kaldık ... iç… – RolandTumble

+1

Peki, tüm diller ... .NET'teki DateTime (int, int, int) kurucusu, bir tek aylık bir ay numarası kullanır. – Guffa

+1

Çok teşekkürler, bu aptalca şeyler için Javascript'ten nefret ediyorum ... -.- – SvenFinke

İlgili konular