Foros del Web » Programando para Internet » PHP »

funciones de fecha

Estas en el tema de funciones de fecha en el foro de PHP en Foros del Web. compaz, quisiera hacer como 3 combobox que lo q haga sea lo siguiente en uno escoja el año digamos desde 1960 hasta el año actual ...
  #1 (permalink)  
Antiguo 15/01/2009, 10:14
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
funciones de fecha

compaz,

quisiera hacer como 3 combobox que lo q haga sea lo siguiente

en uno escoja el año digamos desde 1960 hasta el año actual del sistema
el otro combo q escoja el mes y que dependiendo de el año y el mes se carguen los dias, es como para escojer la fecha de nacimiento de una persona no se si habra alguna funcion de php para eso, hablo por los dias de un mes o por si es bisisto en el caso de febrero, conozco q es bisisto todo año q es multiplo (o dividendo no recuerdo) de 4 y 100 excepto 1900
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #2 (permalink)  
Antiguo 15/01/2009, 10:19
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: funciones de fecha

www.php.net/mktime
Cita:
The last day of any given month can be expressed as the "0" day of the next month, not the -1 day. Both of the following examples will produce the string "The last day in Feb 2000 is: 29".
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
?>
  #3 (permalink)  
Antiguo 16/01/2009, 17:22
Avatar de 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:29.