Tenemos una BD con una serie de valores y queremos filtrarlos por fechas, como por ejemplo del dd/mm/yyyy hasta el dd/mm/yyyy que nosotros queramos. No todos los servidores devuelven la fecha en el mismo orden, si trabajamos en un servidor español lo hará dd/mm/yyyy, pero si trabajamos en un servidor extranjero, como es mi caso, las fechas me las devuelve en el formato mm/dd/yyyy. Esto hay que tenerlo presente a la hora de trabajar con fechas.
A continuación pongo una función para poder filtrar por fechas, y un ejemplo, en el que se puede ver su funcionamiento, pulsando Aquí
private function filtra():void{
var fecha1:String=c_fecha1.text;
var fecha2:String=c_fecha2.text;
fecha1=fecha1.substr(6,4) + fecha1.substr(3,2) + fecha1.substr(0,2);
fecha2=fecha2.substr(6,4) + fecha2.substr(3,2) + fecha2.substr(0,2);
var fechaRegistro:String=recogeDatos.lastResult..registro.fecha;
fechaRegistro=fechaRegistro.substr(6,4) + fechaRegistro.substr(3,2) + fechaRegistro.substr(0,2);
var mifiltro:XMLList=recogeDatos.lastResult..registro.(fecha.substr(6,4) + fecha.substr(3,2) + fecha.substr(0,2)>=fecha1 && fecha.substr(6,4) + fecha.substr(3,2) + fecha.substr(0,2)<=fecha2); gridporDia.dataProvider=mifiltro; }
c_fecha1.text y c_fecha2.text, en mi ejemplo, son campos DateField que devuelven la fecha en formato dd/mm/yyyy
El formato del XLM que estoy llamando es:
<datos>
<registro>
<fecha>10/04/2006</fecha>
<nombre>Pepe</nombre>
<valor>100</valor>
</registro>
</datos>