Foros del Web » Programando para Internet » PHP »

un FOR con fechas??

Estas en el tema de un FOR con fechas?? en el foro de PHP en Foros del Web. buenas, alguien me podria decir si es posible recorrer con un FOR desde una fecha de inicio hasta una fecha final?? la variable tendria el ...
  #1 (permalink)  
Antiguo 29/01/2008, 10:23
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
un FOR con fechas??

buenas, alguien me podria decir si es posible recorrer con un FOR desde una fecha de inicio hasta una fecha final??

la variable tendria el dia de inicio, iria tomando el valor del dia siguiente hasta llegar al dia final.

si pones $i++, suma un dia pero no respeta el fin del mes,sigue sumando y se forma un bucle infinito.
La funcion DATE_ADD no se como usarla dentro de un FOR.
Gracias
  #2 (permalink)  
Antiguo 29/01/2008, 20:30
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 3
Re: un FOR con fechas??

Hola, puedes hacer lo siguiente:
For ($fecha=$fecha_inicial;$fecha_final < $fecha_inicial;date_add(sumarle un dia a $fecha_inicial))
{
lo que necesites hacer con $fecha}
?>

Eso eslo que tiene de bueno el bucle for, que no es suma de cosas solamente sino prueba de condiciones. El bucle se ejecuta si la condicion del medio es cierta. Y al final de cada bucle hace lo que diga la tercera parte (que no tiene por que ser una suma).
Suerte !!!!
  #3 (permalink)  
Antiguo 29/01/2008, 20:50
Avatar de jcarrascal  
Fecha de Ingreso: enero-2008
Mensajes: 87
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: un FOR con fechas??

Cita:
Iniciado por puse Ver Mensaje
si pones $i++, suma un dia pero no respeta el fin del mes,sigue sumando y se forma un bucle infinito.
La funcion DATE_ADD no se como usarla dentro de un FOR.
Gracias
¿DATE_ADD? ¿La función de MySQL? Por que en PHP no existe date_add():

http://www.php.net/manual-lookup.php?pattern=date_add&lang=en

Si te refieres a la de MySQL, lamentablemente no la puedes usar en un ciclo for, pero no te preocupes que para eso tenemos a strtotime:

Código PHP:
$hora time();  // Puede ser lo que tu quieras.
$fin strtotime('+1 week'$hora);

for (; 
$hora $fin$hora strtotime('+1 day'$hora))
{
    echo 
'Hoy es 'date('Y-m-d'$hora), '<br/>';

Suerte.
  #4 (permalink)  
Antiguo 30/01/2008, 02:47
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: un FOR con fechas??

Gracias a los 2 por responder. Lo que has puesto JCARRASCAL me viene bien, la funcion time() se supone que te da los segundos trancurridos desde el 1 de Enero de 1970, luego lo pasas a fecha con date(), hasta ahí llego xero me surge una duda que tal vez puedas solventar, si quiero que tu variable $hora tenga el valor de un día en concreto(no la de hoy), uno que se recoge de un formulario ¿cómo se hace? porque si pones:

$hora='2008-01-15';

Lo que hace tu ejemplo es escribir los días de la primera semana del año 1970.
Gracias por la ayuda.
  #5 (permalink)  
Antiguo 30/01/2008, 03:04
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: un FOR con fechas??

Se me olvidaba comentar que yo lo he intentado con mktime(), pero no me sale bien.
  #6 (permalink)  
Antiguo 30/01/2008, 03:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: un FOR con fechas??

Bueno, he probado la funcion mktime(), poniendo la hora, los minutos y los segundos en cero y si que funciona correctamente.
He puesto:

$hora=mktime(0,0,0,mes,dia,año);

y funciona correctamente.
Gracias.
  #7 (permalink)  
Antiguo 30/01/2008, 17:18
Avatar de jcarrascal  
Fecha de Ingreso: enero-2008
Mensajes: 87
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: un FOR con fechas??

Que bueno que te funcione. También puedes usar strtotime para eso:

Código PHP:
$hora strtotime($_REQUEST['fecha']); 
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:12.