Ayuda con fechas

Rosal?Contreras
31 de Marzo del 2004
Hola,
os escribo a ver si me podeis echar una mano.
Tengo una fecha (formato SQL) '20040331' y quiero operar con ella. Para pasarlo a formato fecha utilizo la siguiente funcion:

function str2date(strdt) {
var dt = Date.UTC(strdt.substr(0,4),strdt.substr(4,2)-1,strdt.substr(6,2))/86400000+25569;
return dt;
}
y ya tengo un numero al que le puedo sumar y restar números. Ahora, mi problemas es volver, me explico: quiero pasar es número a formato 20040331 más el número añadido.
Me puede ayudar alguien?
Muchas gracias,

Rosalía

Fradique
31 de Marzo del 2004
hola Rosalia.
con la funcion UTC tienes que tener cierto cuidado, ya que te transforma la fecha que le ingresas a formato de milisegundos desde la media noche del 1 de enero de 1970. y le resta o le suma la cantidad de horas segun tu horario local. Por ejemplo yo estoy en Guatemala que es -6 GMT.
de tal forma que si yo ingreso la fecha 31 de marzo de 2004 deberia de obtener el 31 de marzo a las 0 horas, pero en resultado obtengo el 30 de marzo a las 18 horas.

si controlas ese detalle, esto te podria ayudar a regresar a tu formato de fecha:

dias=str2date("20040331")
dias*=86400000
g=new Date(dias)
fecha=g.getFullYear()+""+(g.getMonth()+1<10 ? "0"+(g.getMonth()+1):g.getMonth()+1)+""+(g.getDate()<10 ? "0"+(g.getDate()):g.getDate())
alert(fecha)

si tienes dudas escribeme.

saludos,

Fradique