Selector de fechas con SELECT
Una de las opciones más simples para hacer un selector de fechas es disponer de 3 selectores con día, mes y año seleccionándolos de forma separada dentro de un formulario.
Para implementar este tipo de selector debemos crear un formulario con 3 selectores.
Uno para el día de la siguiente forma:
<select name="dia"> <?php for ($i=1; $i<=31; $i++) { if ($i == date('j')) echo '<option value="'.$i.'" selected>'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select>
Como vemos, para generar las opciones para los días creamos un bucle hasta el máximo número de días que puede tener un mes y con la condición de dentro lo que hacemos es mirar de dejar seleccionado por defecto el día de hoy.
Para el més tendríamos algo parecido:
<select name="mes"> <?php for ($i=1; $i<=12; $i++) { if ($i == date('m')) echo '<option value="'.$i.'" selected>'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select>
Y para el año:
<select name="ano"> <?php for($i=date('o'); $i>=1910; $i--){ if ($i == date('o')) echo '<option value="'.$i.'" selected>'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select>
El selector de año es distinto a los otros dos por el simple hecho de que queremos mostrar los años en el selector de mayor año a menor. Por eso en el bucle estamos partiendo del año actual y vamos decrementando hasta el año 1910.
Ahora solo falta recibir la fecha con PHP para procesarla.
<?php if (isset($_POST['enviar'])) { echo 'Fecha recibida: '.$_POST['dia'].'/'.$_POST['mes'].'/'.$_POST['ano']; } ?>
Sabiendo que el formulario también tendrá un botón con name=»enviar», si se pulsa dicho botón simplemente estamos imprimiendo la fecha enviada.
hola febrero dice 31 y suele tener 28
Buenas tardes como puedo hacer eso mismo es asp
How may it be to control the amount of days in a month, this code does not control the date 02/31/2008
Cómo controlar la cantidad de días en un mes ya que este código no controla la fecha 31/02/2005
amigo veras yo lo hice de otro manera ahora necesito que me ayudes ya que quiero saber como puedo programar los select para que por defecto me salga la fecha actual es que quiero hacerlo como una forma de validación.
Esta entrada es de hace 4 años jeje. Bueno, para coger la fecha actual lo tienes sencillo con la función date() de php.
esta muy bien tu funcion, pero quisiera saber como puedo hacer una funcion que valide por año y por mes en un rango de fechas
es decir fecha de inio y fecha final, lo que quiero esque me despliegue el rango entre esas fechas….
ojala me puedas ayudar en javascript
buenas.. esta bien el principio que usastes para realizar esta duda que tenemos mucho, pero creo que te falto acomodar en el caso de los meses que no tienen 31 y en el caso especial de febrero que solo llega hasta 28 y biciesto 29, pienso que se arreglaria seleccionando primero el año, luego el mes y despues el dia.. pero con unas cuantas condiciones! saludos
A thoughtful insight and ideas I will use on my website. You’ve obviously spent a lot of time on this. Well done!
Appreciate the recommendation! Let me try it out.
Really great info can be found on web site.
I do not know whether it’s just me or if everybody else encountering issues with your site. It seems like some of the written text on your posts are running off the screen. Can somebody else please provide feedback and let me know if this is happening to them too? This might be a issue with my browser because I’ve had this happen previously. Thank you
Hey there fantastic website! Does running a blog like this take a lot of work? I have very little understanding of coding but I had been hoping to start my own blog soon. Anyhow, if you have any ideas or techniques for new blog owners please share. I understand this is off topic but I just needed to ask. Thanks!
Hey, you used to write excellent, but the last few posts have been kinda boring… I miss your tremendous writings. Past several posts are just a little bit out of track! come on!»To be content with what one has is the greatest and truest of riches.» by Cicero.
I like this web site very much, Its a rattling nice situation to read and incur info. «Programming graphics in X is like finding the square root of PI using Roman numerals.» by Henry Spencer.
hola Jose Aguilar, trabajo men una pagina donde tengo registros en una tabla en mysql en mi pagina, y quisiera tener acceso a un rango de fechas para luego realizar la presentacion de los demas datos que tengo en otras columnas, y no puedo utilizar javascript para ello, quisiera manejarlo solo por php, realizar filtro por rango de fechas y ojala pudiera manjar un popup de calendario para que las fechas las colocara solo con el mouse .
gracias de antemano
Hola buenos dias Juan Carlos,
Según entiendo lo que posiblemente necesites es condicionar la query de la siguiente forma:
//Recibimos las fechas de inicio y fin a través de un formulario enviado por POST
$fecha_inicio = $_POST[‘fecha_inicio’];
$fecha_final = $_POST[‘fecha_final’];
//Seleccionamos los pedidos que estén entre las fechas recibidas
SELECT * FROM pedidos WHERE fecha BETWEEN ‘» . $fecha_inicio . «‘ AND ‘» . $fecha_final . «‘
Espero sea de utilidad,
Saludos