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_facturas, p_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=0; index< listaFacturas.length; index++){
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>