2011-09-07 11 views
13

Supongamos que recibo dos fechas desde el plugin selector de fechas en formato DD/MM/YYYYcomparación 2 fechas en formato DD/MM/AAAA con javascript/jquery

var date1 = '25/02/1985'; /*february 25th*/ 
var date2 = '26/02/1985'; /*february 26th*/ 
/*this dates are results form datepicker*/ 

    if(process(date2) > process(date1)){ 
      alert(date2 + 'is later than ' + date1); 
    } 

¿Qué le debo esta función parece?

function process(date){ 
    var date; 
    // Do something 
    return date; 
} 
+0

¿Está seguro de que su selector de fecha es no devolver los objetos reales javascript 'date'? Si es así, puedes compararlos. – Jamiec

Respuesta

19

Split, en la "/" y utilizar el Date constructor.

function process(date){ 
    var parts = date.split("/"); 
    return new Date(parts[2], parts[1] - 1, parts[0]); 
} 
+1

Este enfoque funcionaría mejor que el que he publicado porque sospecho algunas fechas como 1/1/2000 incumplan con el formato dd/mm/aaaa cuando se convierte en un objeto de fecha. +1 para usted, señor. – Maxx

+0

debe devolver una nueva fecha (partes [2], partes [1] +1, partes [0]); –

+3

No, el componente de mes de la fecha de javascript está basado en cero. Además de las piezas [1] + 1 arrojaría 1 como una cadena y añadirlo al final de las partes [1] cadena .. – InvisibleBacon

6
function process(date){ 
    var parts = date.split("/"); 
    var date = new Date(parts[1] + "/" + parts[0] + "/" + parts[2]); 
    return date.getTime(); 
} 
5

Podría ser más fácil:

var date1 = '25/02/1985'; /*february 25th*/ 
var date2 = '26/02/1985'; /*february 26th*/ 

if ($.datepicker.parseDate('dd/mm/yy', date2) > $.datepicker.parseDate('dd/mm/yy', date1)) { 

     alert(date2 + 'is later than ' + date1); 

} 

Para más detalles check this fuera. Gracias.

Cuestiones relacionadas