No sé por qué funciona, pero lo que he descubierto es si usa barras diagonales o rayas afecta la respuesta. Echar un vistazo.
new Date ('2012/03/21'); // returns: "Wed Mar 21 2012 00:00:00 GMT-0500 (CDT)"
new Date ('2012-03-21'); // returns: "Tue Mar 20 2012 19:00:00 GMT-0500 (CDT)" WHA!
Así que para arreglar mi problema que hizo una expresión regular sencilla en mi fecha de entrada para reemplazar siempre los tres primeros guiones con barras diagonales.
var strInputValue = control.value, // <-- get my date string
dteCurrent;
strInputValue = strInputValue.replace(/-/, '/') // replace 1st "-" with "/"
.replace(/-/, '/'); // replace 2nd "-" with "/"
dteCurrent = new Date(strInputValue);
hice un muy rápido búsqueda en Google de por qué esto iba a pasar y no como respuesta. Pero esto debería solucionar tu problema. Todo lo que tienes que hacer es reemplazar los guiones con barras diagonales antes de pasarlos a donde quieras.
Editar: Lo siento, no me di cuenta de la respuesta ya aceptada antes de la publicación, por favor, ignore esta respuesta.
¿Seguro que esto está relacionado con el marcador de fecha? 'document.write (new Date ('2012-03-21'))' prints 'Mar 20 de feb. 20:00:00 GMT-0400 (Eastern Daylight Time)' para mí. ¿Error del año bisiesto? –
Algo relacionado con el formateo también, mira esto: http://jsfiddle.net/fkSC5/ Al pasar '2012-03-21' y' 2012/03/21' a 'Date()' se obtienen resultados que son 4 horas de diferencia –
Eso es verdad. nueva Fecha ('...') está desactivada por un día. – user823527