Foros del Web » Programando para Internet » PHP »

[APORTE]: Como crear fechas en dropdowns con loops

Estas en el tema de [APORTE]: Como crear fechas en dropdowns con loops en el foro de PHP en Foros del Web. Hola amigos. Este es un pequeño aporte y es especialmente para aquellos que se han roto la cabeza escribiendo (por ejemplo) todos los años desde ...
  #1 (permalink)  
Antiguo 30/12/2008, 23:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
[APORTE]: Como crear fechas en dropdowns con loops

Hola amigos.

Este es un pequeño aporte y es especialmente para aquellos que se han roto la cabeza escribiendo (por ejemplo) todos los años desde 1900 hasta 2008 en un select pudiendolo hacer tan facil como con PHP .
Dejemonos de palabreria y empezemos:
Código PHP:
<form action="#" method="post">
   <select name="dia">
      <?php
      
/*Aqui comienza la accion jeje*/
      
for($i=1$i<30$i++){
          echo 
"<option value=\"".$i."\">".$i."</option>";
      }
      
?>
   </select>
   <select name="mes">
      <?php
      
/*Ahora con el mes*/
      
for($i=1$i<12$i++){
          switch(
$i)
          {
              case 
1:
                    
$mes "Enero";
              break;
              case 
2:
                    
$mes "Febrero";
              break;
              case 
3:
                    
$mes "Marzo";
              break;
              case 
4:
                    
$mes "Abril";
              break;
              case 
5:
                    
$mes "Mayo";
              break;
              case 
6:
                    
$mes "Junio";
              break;
              case 
7:
                    
$mes "Julio";
              break;
              case 
8:
                    
$mes "Agosto";
              break;
              case 
9:
                    
$mes "Septiembre";
              break;
              case 
10:
                    
$mes "Octubre";
              break;
              case 
11:
                    
$mes "Noviembre";
              break;
              case 
12:
                    
$mes "Diciembre";
              break;
          echo 
"<option value=\"".$i."\">".$mes."</option>";
         }
      }
      
?>
   </select>
   <select name="ano">
      <?php
      
/*Por ultimo el que es comunmente el mas tedioso, es el mas facil xD (casi)*/
      
for($i=1990$i<2008$i++){
          echo 
"<option value=\"".$i."\">".$i."</option>";
      }
      
?>
   </select>
</form>
Espero les sirva

Saludos
  #2 (permalink)  
Antiguo 31/12/2008, 07:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [APORTE]: Como crear fechas en dropdowns con loops

Excelente aporte, pero ya que estamos permíteme hacer algunos comentarios:

- en la parte del día no aparecerán el 30 ni el 31 ($i < 30)
- en la parte del año no aparecerá 2008 ($i < 2008)

Se puede simplificar la parte del mes:

Código PHP:
$meses = array (=> 'Enero''Febrero''Marzo''Abril''Mayo''Junio''Julio''Agosto''Setiembre''Octubre''Noviembre''Diciembre');

foreach (
$meses as $num_mes => $nombre_mes) {
    echo 
'<option value="'.$num_mes.'">'.$nombre_mes."</option>\n";


Saludos.
  #3 (permalink)  
Antiguo 31/12/2008, 07:34
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: [APORTE]: Como crear fechas en dropdowns con loops

Muy bueno, tambien las correcciones de alvlin

Saludos...
  #4 (permalink)  
Antiguo 31/12/2008, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [APORTE]: Como crear fechas en dropdowns con loops

para el uso de timestamp, digamos... opciones de minutos, horas, días, etc...

un ejemplo básico, de una hora... en timestamp osea, tick por segundo ... y con intervalos de 5 minutos entre cada opción, excepto los primeros 5 minutos (para mas precisión)

- este lo use, para un combo de minutos, para configurar algún cache...

Código php:
Ver original
  1. // primero, creamos manualmente los
  2. // primeros intervalos de 1-4 minutos...
  3.  
  4. $mk = array(
  5.     60 => 1,
  6.     120 => 2,
  7.     180 => 3,
  8.     240 => 4
  9. );
  10.  
  11. // usando range, automatizamos el array (consulten el manual)
  12.  
  13. foreach (range(0,60,5) as $i => $v)
  14. {
  15.     // ahora, agregamos otro índice multiplicado
  16.     // para resultar de entre cada 300 segundos
  17.     $i *= 300;
  18.  
  19.     // el valor es simple mente lógico
  20.     $mk[$i] = round($v &#37; 180);
  21. }
  22.  
  23. // ordenamos el array
  24. ksort($mk);
  25.  
  26.  
  27. $out = array();
  28. foreach ($mk as $val => $str)
  29. {
  30.     $out[] = '<option value="' . $val . '">' . $str . '</option>';
  31. }
  32.  
  33. echo '<select>', join("\n", $out), '</select>';

NOTA: y ni usando [highlight] se arreglo el % (&#37;) ....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 31/12/2008 a las 13:44
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 03:34.