Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2008, 08:39
mindoata
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 16 años, 8 meses
Puntos: 1
Fecha en Javascript

Hola amigos necesito una ayuda, tengo el siguiente codigo de javascript que baje por internet para insertar dos fechas y enviarlas por el metodo post , mi problema es que no me funciona bien por que escojo el mes de febrero y en todos los años me sale 29 días y solo deberia salir en los años bisiestos; No sé mucho de javascript pero estuve analizando el codigo y no encuentro cual es el problema, por ayudenme a encontrarlo, este es el codigo:

Código:
Código HTML:
<html>
<head>
<title>Adquisiciones de Metodologia de la Investigación</title>
<script language="JavaScript">
var a="Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28";
var b="Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29";
var c="Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
var d="Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
var e="Mes,01,02,03,04,05,06,07,08,09,10,11,12";
var f="Año,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013";

var mydate=new Date();
var year=mydate.getFullYear();        // full en vez de normal, el normal está en desuso
var dia=getDay();
var mes=getMonth();
if (dia<10){dia="0"+dia;}
if (mes<10){mes="0"+mes;}
//if (year < 1000){year+=1900;}
    
function addOpt(oCtrl, iPs, sTt, sVl){
    var sOpcion=new Option(sTt, sVl);
    oCtrl.options[iPs]=sOpcion;
    return sOpcion;
}

function esBisiesto(nAno){
    var bRes = true;
    res = bRes && (nAno % 4 == 0);
    res = bRes && (nAno % 100 != 0);
    res = bRes || (nAno % 400 == 0);
    return bRes;
} 
   function inicializar(){
   
     ele = esBisiesto(year) ? b : a;
    ele=ele.split(",");
    oCtrl=document.getElementById('days1');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], ele[i]);
        if(ele[i]==dia){nueva_opcion.selected = true;}
    }
   
    //meses
    ele=e.split(",");
    oCtrl=document.getElementById('months1');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], i);
        if( (i-1)==mes ){nueva_opcion.selected = true;}
    }
   	 ele=f.split(",");
    oCtrl=document.getElementById('years1');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], ele[i]);
        if(ele[i]==year){nueva_opcion.selected = true;}
    }
	
  	 ele = esBisiesto(year) ? b : a;
    ele=ele.split(",");
    oCtrl=document.getElementById('days');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], ele[i]);
        if(ele[i]==dia){nueva_opcion.selected = true;}
    }
   
    //meses
    ele=e.split(",");
    oCtrl=document.getElementById('months');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], i);
        if( (i-1)==mes ){nueva_opcion.selected = true;}
    }
   	 ele=f.split(",");
    oCtrl=document.getElementById('years');
    while (oCtrl.length) oCtrl.remove(0);
    for (var i=0;i<ele.length;i++){
        var nueva_opcion = addOpt(oCtrl,  i, ele[i], ele[i]);
        if(ele[i]==year){nueva_opcion.selected = true;}
    }
	
}

function Cambia(oCtrl) {
    var qmes, i=document.getElementById('months').selectedIndex;
    switch (i) {
        case 1: case 3:    case 5:    case 7:    case 8:    case 10: case 12: qmes=d; break;
        case 4: case 6:    case 9:    case 11: qmes=c; break;
        case 2: qmes=esBisiesto(year)? b : a; break;
        default: qmes=false;
    }
    if( qmes ) {
        while (oCtrl.length) oCtrl.remove(0);
        ele=qmes.split(",");
        for(i=0;i<ele.length;i++) {
           addOpt(oCtrl,  i, ele[i], ele[i]);
        }
    }
}
function Cambia1(oCtrl) {
    var qmes, i=document.getElementById('months1').selectedIndex;
    switch (i) {
        case 1: case 3:    case 5:    case 7:    case 8:    case 10: case 12: qmes=d; break;
        case 4: case 6:    case 9:    case 11: qmes=c; break;
        case 2: qmes=esBisiesto(year)? b : a; break;
        default: qmes=false;
    }
    if( qmes ) {
        while (oCtrl.length) oCtrl.remove(0);
        ele=qmes.split(",");
        for(i=0;i<ele.length;i++) {
           addOpt(oCtrl,  i, ele[i], ele[i]);
        }
    }
}  
function poner(a,eta,ete,eto){
ja=document.getElementById(a);
jb=document.getElementById(eta);
jc=document.getElementById(ete);
jd=document.getElementById(eto);
switch(a){
    case "id6":        {
                    if (jc.value <7)
                        {ja.value=jb.value+"01";}
                    else{
                        if (jc.value <13)
                            {ja.value=jb.value+"02";}
                        }
//                    alert(ja.value);
                    break;}
    case "dates":    {ja.value=jb.value+"/"+jc.value+"/"+jd.value;
//                    alert(ja.value);
                    break;}
}}
function poner1(a,eta,ete,eto){
ja=document.getElementById(a);
jb=document.getElementById(eta);
jc=document.getElementById(ete);
jd=document.getElementById(eto);
switch(a){
    case "id61":        {
                    if (jc.value <7)
                        {ja.value=jb.value+"01";}
                    else{
                        if (jc.value <13)
                            {ja.value=jb.value+"02";}
                        }
//                    alert(ja.value);
                    break;}
    case "dates1":    {ja.value=jb.value+"/"+jc.value+"/"+jd.value;
//                    alert(ja.value);
                    break;}
}}
function validacion()
{
   x = document.getElementById("months").selectedIndex;
   y = document.getElementById("days").selectedIndex;
   if(x==0 || y==0){
      alert('Porfavor seleccione la fecha');
	  return false;
   }
   
   w = document.getElementById("months1").selectedIndex;
   z = document.getElementById("days1").selectedIndex;
   if(w==0 || z==0){
      alert('Porfavor seleccione la fecha');
	  return false;
   }
   
   
  
}

</script>
</head>
<body>

<fieldset style="width:800" align="center">
<br>
<br>
<script type="text/javascript">document.onload=setTimeout("inicializar()", 0000);</script>
                       <table border='0' align="center">
                       <form action='adq_metodologia.php' method='post' onSubmit="return validacion()">
					   <tr ><td colspan="11" align="center"><h2>Adquisiciones de Metodología</h2></td></tr>
					   <tr><td><p class="texto">Ingrese fecha :</p></td><td><select id="years" name="years" class="CLASE" ></select></td><td>					   
                        <select id="months" name="months"  class="CLASE" onBlur="poner('id6','years','months',0)" onChange="Cambia(document.getElementById('days'))" ></select></td>
						                      <td><select id="days" name="days" class="CLASE" onChange="poner('dates','years','months','days')"></select></td><td><p class="texto">hasta</p></td>
						<td><select id="years1" name="years1" class="CLASE"></select></td><td>
                        <select id="months1" name="months1"  class="CLASE" onBlur="poner1('id61','years1','months1',0)" onChange="Cambia1(document.getElementById('days1'))"></select></td>
                        <td><select id="days1" name="days1"  class="CLASE" onChange="poner1('dates1','years1','months1','days1')"></select></td>
<th><input   id="dates1" name="dates1" type="hidden"  /></th>
<th><input   id="dates" name="dates" type="hidden"  /></th>
<td><input   type="submit" value="consultar" class="CLASE" /></td></tr>
</form>
</table>
</body>
</html>