validaciones mayor ingresar fechas fecha dias comparar comparacion como javascript date internet-explorer-8 date-comparison

mayor - ingresar fecha javascript



La comparaciĆ³n de fechas de JavaScript falla en IE8 (3)

Tengo una función que convierte una fecha a AAAA-MM-DD de DD / MM / YYYY.

Esto funciona en todos los navegadores aparte de IE8, por algún motivo, al crear un nuevo objeto Date, devuelve NaN.

Implementación básica del código http://jsfiddle.net/bX83c/1/

var compareDate = function(value){ var dateFragements = value.split(''/''); if (dateFragements.length == 3) { var currentDate = new Date(); currentDate.setHours(0, 0, 0, 0); var startDate = new Date(dateFragements[2] + ''-'' + dateFragements[1] + ''-'' + dateFragements[0]); if (startDate >= currentDate) { return true; } else { return false; } } } alert(compareDate(''17/09/2013''));


IE8 espera ''/'' como el separador en una cadena de fecha, por eso su función falla. Se puede simplificar a:

var compareDate = function(value){ var dateFragements = value.split(''/''); if (dateFragements.length == 3) { var currentDate = function(){ return (this.setHours(0), this.setMinutes(0), this.setSeconds(0), this); }.call(new Date) ,startDate = new Date([dateFragements[2], dateFragements[1], dateFragements[0]].join(''/'')); return startDate>=currentDate; } }


new Date(dateString)

acepta los siguientes formatos (solo):

"October 13, 1975 11:13:00" "October 13, 1975 11:13" "October 13, 1975"


Inténtalo de esta manera. Funcionará en todos los navegadores

var startDate = new Date(dateFragements[2] , dateFragements[1] , dateFragements[0]);

Hay 4 formas en que el objeto Date se puede inicializar usando constructor

new Date() // current date and time new Date(milliseconds) //milliseconds since 1970/01/01 new Date(dateString) new Date(year, month, day, hours, minutes, seconds, milliseconds)

Cadena en el objeto Fecha no significa que aceptará todas las cadenas de fecha. Si quieres dar una cadena como entrada, da esto. (dateFragements [2] + ''/'' + dateFramements [1] + ''/'' + dateFragements [0]) ;. ( / como separador) Será compatible con todos los navegadores