Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/01/2009, 17:22
Avatar de lobo_php
lobo_php
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: funciones de fecha

Bueno compañeroz hice lo que pude xDDD

no mentiras ahi le cacharrie hasta que encontre lo que necesitaba, les comparto para que puedan enteder lo que hice y para los que no saben... emmm ps puedan saber xD

aqui les va el codigo:

Fecha de nacimiento:
supongamos q tenemos un formulario:

Código HTML:
<form action="ingresar.php" method="post" name="agregar" id="agregar"> 
aqui estan los combos que se van a cargar
Código PHP:
<div id="div_dia">
    <select name="anho" id="anho">
    <?php
        $a1
=1960;
        
$a2=date("Y");
        
$a2=$a2-3;
        for(
$a2;$a2>=$a1;$a2--){
        
?>
            <option onclick="valida_febrero()" value="<?php echo $a2?>"><?php echo $a2?></option>;//si cambia el año valida si se tiene seleccionado febrero para que se recarguen los dias
        <?php
        
}
        
?>
        </select>
        <select name="mes" id="mes">
        <?php
            $m1
=1;
            
$m2=12;
            for(
$m1=1;$m1<=$m2;$m1++){
            if(
$m1>=&& $m1<=9){
                
$mes_n="0".$m1;
            }
            else{
                
$mes_n=$m1;
            }
            
$mes_lnombre_mes($m1);
        
?>
<!--//cargadia es la funcion para que cargue el dia-->
        <option onclick="cargadia('<?php echo $mes_n?>')" <?php if($mes_l=="Enero"){echo "selected='selected'";} ?> value="<?php echo $mes_n?>"><?php echo $mes_l?>
        </option>
        <?php
            
}
        
?>
        </select>
        <select name="dia" id="dia">
        <?php
            
for($aux_dia=1;$aux_dia<=31;$aux_dia++){
            
?>
                <option value="<?php echo $aux_dia?>"><?php echo $aux_dia?></option>
            <?php
            
}
            
?>
            <script>
            valida_febrero(); //valida el mes de febrero por si se cambia el año
            </script>
        </select>

bueno luego de eso veamos que funciones hay:

seria bueno que las pusieran en este orden que les voi a poner y antes de el codigo anteriormente puesto.

Código PHP:
<script>
function llenar_mes(fin){ //llena el select de dias segun el mes(y tal ves año)
    for(i=1;i<=fin;i++){//hacemos un ciclo segun los dias
        opc=new Option(i,i);//agregamos la opcion
        //if(i!=0){
            document.forms.agregar.dia.options[i]=opc;//la implementamos al select
        //}
    }
}

/*esta funcion saca los dias que tiene el mes seleccionado, si es febrero tambien hace la operacion sobre el año para saber si es bisciesto*/
function cargadia(mes_a){
    //borramos las opciones que tenia el select "dia"
    var combo = document.getElementById('dia'); 
    var numero_o = combo.options.length;
    var j=0;
    for(j=0;j<=numero_o-1;j++){
        combo.options[j]=null;
    }
    //agregamos los dias correspondientes al mes
    var mes = mes_a;
    var anho = document.getElementById('anho').value;
    var i=1;
//si el mes es febrero
    if(mes=="02"){
//si es bisiesto
        if ((anho % 4 == 0) && ((anho % 100 != 0) || (anho % 400 == 0))){
            llenar_mes(29);
            combo.options[0]=null;//tenia unos errores raros, no se cuales pero con eso lo controlo
        }
//si no es bisiesto
        else{
            llenar_mes(28);
            combo.options[0]=null;
        }
    }
//meses de 31:
    if(mes=="01" || mes=="03" || mes=="05" || mes=="07" || mes=="08" || mes=="10" || mes=="12"){
        llenar_mes(31);
        combo.options[0]=null;
    }
//meses de 30
    if(mes=="04" || mes=="06" || mes=="09" || mes=="11"){
        llenar_mes(30);
        combo.options[0]=null;
    }
}

//la funcion de validar febrero por si se cambia el año teniendo febrero seleccionado
function valida_febrero(){
//cojemos el mes seleccionado (por si no es febrero
    var mes_esc = document.getElementById('mes').value;
    //borramos de nuevo
    var combo = document.getElementById('dia'); 
    var numero_o = combo.options.length;
    var j=0;
    for(j=0;j<=numero_o;j++){
        combo.options[j]=null;
    }
//mandamos el mes otra ves a la funcion
    cargadia(mes_esc);
}
</script>

//esta funcion es para poner el nombre del mes:
<?php
    setlocale
(LC_ALL,"es_ES@euro","es_ES","esp");
    function 
nombre_mes($mes_dado){
        if(
$mes_dado==1){$nombre_del_mes="Enero";return $nombre_del_mes;}
        if(
$mes_dado==2){$nombre_del_mes="Febrero";return $nombre_del_mes;}
        if(
$mes_dado==3){$nombre_del_mes="Marzo";return $nombre_del_mes;}
        if(
$mes_dado==4){$nombre_del_mes="Abril";return $nombre_del_mes;}
        if(
$mes_dado==5){$nombre_del_mes="Mayo";return $nombre_del_mes;}
        if(
$mes_dado==6){$nombre_del_mes="Junio";return $nombre_del_mes;}
        if(
$mes_dado==7){$nombre_del_mes="Julio";return $nombre_del_mes;}
        if(
$mes_dado==8){$nombre_del_mes="Agosto";return $nombre_del_mes;}
        if(
$mes_dado==9){$nombre_del_mes="Septiembre";return $nombre_del_mes;}
        if(
$mes_dado==10){$nombre_del_mes="Octubre";return $nombre_del_mes;}
        if(
$mes_dado==11){$nombre_del_mes="Noviembre";return $nombre_del_mes;}
        if(
$mes_dado==12){$nombre_del_mes="Diciembre";return $nombre_del_mes;}
    }
?>
Espero que funcione, si tiene algunos errores pues los corrigen, si qieren cambiarle las cosas pues obvio las cambian, espero que les sirva a los que lo necesitan y no se olviden de agradecer.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Última edición por lobo_php; 16/01/2009 a las 17:29