Pregunta

Mi configuración regional son:

Corto Formato de fecha: dd / mm / aaaa, formato de fecha larga aaaa dd MMMM

Entonces, ¿por qué

var d = new Date("8/10/2009")
alert(d.toLocaleDateString()); 

lanzar el 10 de agosto de 2009

o

var d = new Date("15/10/2009");

vomitar 10ma de marzo de de 2010

¿Fue útil?

Solución

Cuando el sistema se pone la fecha de 10 de agosto a partir de que debería ser obvio, incluso si usted no recibe por qué aún. Pero es menos fácil de entender cómo se hace "10mo de marzo de 2010" desde "15/10/2009". Por lo que en caso de que no:

Supongamos por un momento el objeto Date ya ha decidido que es el uso de un formato "M / D / A", por lo que el de la primera parte (15) es el mes. ¿Cómo sería manejar eso? Lo que pasa es que comienza con el año y construye la fecha "1/1/2009". A continuación, avanza al 15º mes, para darle de marzo de 2010. Añadir los 10 días y hay que ir.

En el "por qué" de la misma, darse cuenta de que había que llamar toLocaleDateString() para conseguir que la salida en el formato local determinado. Sin embargo, su new Date() no hace ninguna mención similar de local en cualquier lugar. Así que es sólo el uso es invariante cultura incorporada.

Otros consejos

Tal vez puedas probar.

var myDate=new Date();
myDate.setFullYear(2010,0,14);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top