Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2010, 13:23
occiso
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 20 años, 1 mes
Puntos: 5
Comparación de fechas

Saludos compañeros,

Tengo que hacer una clasificación de facturas. Si la fecha de factura es menor a una determinada fecha la inserto en una variable y si no la inserto en otra. El problema es curioso. Ahora mismo funciona correctamente si indico la fecha con el formato dd/mm/yyyy; pero si le aplico otro formato funciona al revés de como debería.

Ejemplo en el código:
si fecha factura <= 31/11/2010 --> versión antigua
si fecha factura > 31/11/2010 --> versión nueva.

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<
title>Insert title here</title>
<
script>

/*Divide la factura en dos tipos: los que se visualizan en la versión antigua y en la nueva.
 *  @param {p_facturas} id facturas separadas por comas (en caso de array su índice debe corresponderse con p_fechaFactura)
 *  @param {p_fechaFactura} fecha en la que se realizan la facturas separadas por comas (formato dd/mm/aaaa)
 *  @return devuelve las facturas separadas en dos partes por los caracteres ##.
 */

function clasificarFacturasSegunFecha(p_facturasp_fechaFactura) {
    
    
//Fecha a partir de la que  empezamos a aplicar la nueva versión de crear facturas.
    
var FECHA_LIMITE = new Date('30/11/2010');
            
    var 
facturaVersionAntigua = new String('');
    var 
facturaVersionNueva   = new String('');
        
    var 
listaFacturas = new String(p_facturas);
    
listaFacturas listaFacturas.split(','); 
    
    var 
listaFechaFactura = new String(p_fechaFactura);
    
listaFechaFactura listaFechaFactura.split(',');
            
    
debugger;
    var 
index;
    for (
index=0indexlistaFacturas.lengthindex++){
        if (new 
Date(listaFechaFactura[index]).getDate() <= FECHA_LIMITE.getDate()){ //solo funciona correctamente con formato dd/mm/yyyy
        //if (Date.parse(listaFechaFactura[index]) <= FECHA_LIMITE){  //no funciona
            
if (!facturaVersionAntigua.length facturaVersionAntigua listaFacturas[index];
            else 
facturaVersionAntigua += ',' listaFacturas[index];                        
        }        
        else {
            if (!
facturaVersionNueva.length
                
facturaVersionNueva listaFacturas[index];
            else 
                
facturaVersionNueva += ',' listaFacturas[index];
        }
                
    }
    return 
facturaVersionNueva +"##"facturaVersionAntigua;
}

</script>
</head>
<body>
<button onclick="clasificarFacturasSegunFecha('11,22', '25/11/2010, 10/12/2010')">formato dd/mm/yyyy</button>
<button onclick="clasificarFacturasSegunFecha('11,22', 'Thu Nov 25 2010 00:00:00 GMT+0100, Fri Dec 10 2010 00:00:00 GMT+0100')">otro formato</button>
</body>
</html> 
Supongo que se trata de algún problema de conversión, pero no logro averiguarlo.