Se selecciona el Año, luego el mes, y luego el día.
El año empieza en 1978 hasta el año actual, si se elige el año 1978 el menú de los meses empieza desde Junio, sino desde Enero a Diciembre y dependiendo del mes que se eligió, el menú de los días presenta 30 o 31 días (o 28).
Sin embargo al cargarlo en Firefox no me funciona... qué debo cambiar para que funcione?
Y si hay como validar para que Si se lecciona Año 1978, mes Junio, el menú de los días aparezca desde el 19.
El código es:
Código:
La página es: http://usuarios.lycos.es/rmc/garfield/garfield.htm var aMeses = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre") function padNmb(nStr, nLen, sChr){ var sRes = String(nStr); for (var i = 0; i < nLen - String(nStr).length; i++) sRes = sChr + sRes; return sRes; } function makeDateFormat(nDay, nMonth, nYear){ var sRes; sRes = padNmb(nDay, 2, "0") + "/" + padNmb(nMonth, 2, "0") + "/" + padNmb(nYear, 4, "0"); return sRes; } function addOpt(oCntrl, iPos, sTxt, sVal){ var selOpcion = new Option(sTxt, sVal); oCntrl.options.add(selOpcion, iPos); } function lastDayOfMonth(nMonth, nYear){ var aMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if ((nMonth == 2) && (nYear % 4 == 0)) return 29; else return aMonth[nMonth - 1]; } function cambia(nCambiado){ var nAno; var nMes; with (document.frm){ nAno = parseInt(ano.options[ano.selectedIndex].value); switch (nCambiado){ case 0: llenaMes(mes, nAno); break; case 1: nMes = parseInt(mes.options[mes.selectedIndex].value); llenaDia(dia, nAno, nMes) break; case 2: nMes = parseInt(mes.options[mes.selectedIndex].value); nDia = parseInt(dia.options[dia.selectedIndex].value); res.value = makeDateFormat(nDia, nMes + 1, nAno); cambiarImagen(res.value); break; } } } function llenaAno(oAno){ var hoy = new Date(); var ini = 1978; addOpt(oAno, 0, "", ""); for (var i = ini; i <= hoy.getYear(); i++) addOpt(oAno, i - ini + 1, String(i), String(i)); } function llenaMes(oMes, nAno){ var hoy = new Date(); var nFin = 11; while (oMes.length > 0) oMes.remove(0); if (nAno == hoy.getYear()) nFin = hoy.getMonth(); addOpt(oMes, 0, "", ""); for (var i = nAno==1978?5:0 ; i <= nFin; i++) addOpt(oMes, i + 1, aMeses[i], String(i)); } function llenaDia(oDia, nAno, nMes){ var hoy = new Date(); var nFin = lastDayOfMonth(nMes + 1, nAno); while (oDia.length > 0) oDia.remove(0); if (nAno == hoy.getYear() && nMes == hoy.getMonth()) nFin = hoy.getDate(); addOpt(oDia, 0, "", ""); for (var i = 1; i <= nFin; i++) addOpt(oDia, i + 1, String(i), String(i)); } function cambiarImagen(fecha) { var img=document.getElementById("imagen"); fecha=fecha.split("/"); var oAno=fecha[2].substring(2); var oMes=fecha[1]; var oDia=fecha[0]; var oFold=fecha[2]; // img.src=oAno+oMes+oDia+".jpg"; img.src="http://images.ucomics.com/comics/ga/"+oFold+"/"+"ga"+oAno+oMes+oDia+".gif"; }