2012-09-03 10 views
31

usando Mozilla Firefox Firebug:Javascript está creando fecha equivocada meses

var myDate = new Date(2012, 9, 23, 0,0,0,0); 
myDate; 

Fecha {Mar Oct 23 de 2012 00:00:00 GMT-0400 (Hora de verano)}

¿Por qué crear el javascript fecha con el mes equivocado?

+4

Los meses de JavaScript tienen índice cero ... * encuentran el enlace dupe *. – Matt

+1

@Matt: dame un par de minutos para recopilar algunos puntos de rep ;-) – zerkms

+0

Eugh, no puedo creer que no pueda encontrar uno. Google me está fallando. – Matt

Respuesta

54

No, de javascript Date meses a empezar con 0, por lo que es un mes 9 10 y Es octubre

Reference:

new Date(year, month [, day, hour, minute, second, millisecond]);

[...]

mes entero valor que representa el mes, comenzando con 0 de enero a 11 de diciembre.

+0

¿Esto también es cierto para el día? Creé una Fecha (1982, 10, 14) ... a veces me da 13 Oct 1982 23:00 y a veces me da 14 Oct 1982 00:00 – Shumii

+2

Creo que vale la pena mencionar que ese mes se basa en cero no solo en JavaScript, pero en casi todas partes. Esto sigue la tradición de '' de C. Todos los campos en C que se usan para indexar matrices están basados ​​en cero, incluso si la forma legible para humanos estuviera basada en uno. Cada vez que se creaban API similares en otros lugares, la mayoría de ellas siguen esa convención, como Java o JavaScript. –

6

En el mundo javascript los meses comienzan con cero! algo raro para mí. De todos modos, 9 NO es septiembre, sino 9 es octubre.

+2

tipo de extraño para mí. AAAAAAAAAAAAAAAAAAAAAAAAAA !! WTF !! ¡¡¡¡Gracias hombre!!!! –

+0

Esto no es extraño. En el mundo de la programación, la mayoría de los idiomas proporcionan meses en enteros basados ​​en 0. –

+0

Sabes que iba a responder con "¿Pero qué pasa con los días y años? ¿Por qué no están basados ​​en cero?" Pero luego llegué a la comprensión; en realidad, son 2 tipos de datos completamente diferentes, los meses son nombres propios, cadenas y días del mes, junto con los años son solo números enteros. Entonces, no es realmente extraño, realmente tiene sentido cuando lo piensas. –

Cuestiones relacionadas