Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sumar fecha dentro de un loop

Estas en el tema de Sumar fecha dentro de un loop en el foro de PHP en Foros del Web. hola amigos del foro, los molesto con una consulta, la cual no puedo resolver como hacer: supongamos que tengo una fecha inicial (actual) y una ...
  #1 (permalink)  
Antiguo 07/07/2013, 21:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Sumar fecha dentro de un loop

hola amigos del foro, los molesto con una consulta, la cual no puedo resolver como hacer:

supongamos que tengo una fecha inicial (actual) y una fecha final (futura), y que la cantidad de dias para llegar de la fecha actual a la final es de 90 dias (por poner un numero cualquiera)

lo que necesitaria hacer es, suponiendo que el usuario quiere que un evento se vaya publicando todos los dias, con su fecha del dia correspondinte, necesito que dentro de un loop for cuyo valor final en este caso seria 90, que me vaya ingresando en la base de datos el evento con su fecha del dia actualizada, por ejemplo

1- publica el evento con la fecha de hoy 07/07/2013
2 vuelve a publicar el evento con fecha de mañana 08/07/2013
3 idem con la fecha de pasado mañana, y asi sucesivamente hasta llegar a 90, que es donde se detiene el bucle, pero no logro resolver como hacerlo

agradedeceria su ayuda
saludos
  #2 (permalink)  
Antiguo 07/07/2013, 21:29
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Sumar fecha dentro de un loop

Código PHP:
<?php
// Para PHP >= 5.3.0
$ini = new DateTime('2013-07-07'); // formato: aaaa-mm-dd

$mas_1D = new DateInterval('P1D');

for (
$i=0;$i<90;$i++){   
   echo 
$ini->add($mas_1D)->format('d-m-Y') . '<br/>';
}
Pero yo ejecutaria el script que hace lo que tiene que hacer 1 vez al dia con un cronojob, o sea... no calcularia las fechas ni nada desde PHP
__________________
Salu2!

Última edición por Italico76; 07/07/2013 a las 22:31
  #3 (permalink)  
Antiguo 08/07/2013, 10:53
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fecha dentro de un loop

muchisimas gracias por la respuesta, ese script funciona perfecto
la idea de hacerlo mediante php, al menos eso se me ocurrio a mi, es porque el asunto es asi, arme un calendario, y la idea es que el usuario registre una cita en el calendario, un dia determinado, y la idea es darle al usuario la posibilidad de que esa cita se autopublique o diriamente, o cada dos dias, o semanalmente, o mensualmente, o anualmente
por eso necesitaba un script ke haga eso al menomento que el usuario envia el formulario
perdon el abuso pero ya que estoy te hago otra consulta, en caso de que el usuario por ejemplo desee que su cita se publique semanalmente o mensualmente, como hago por ejemplo para sumarle o bien 7 dias a la fecha o 30 dias, etc
muchas gracias

Cita:
Iniciado por Italico76 Ver Mensaje
Código PHP:
<?php
// Para PHP >= 5.3.0
$ini = new DateTime('2013-07-07'); // formato: aaaa-mm-dd

$mas_1D = new DateInterval('P1D');

for (
$i=0;$i<90;$i++){   
   echo 
$ini->add($mas_1D)->format('d-m-Y') . '<br/>';
}
Pero yo ejecutaria el script que hace lo que tiene que hacer 1 vez al dia con un cronojob, o sea... no calcularia las fechas ni nada desde PHP
  #4 (permalink)  
Antiguo 08/07/2013, 11:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fecha dentro de un loop

ya entontre la solucion era sencillo, modificar el parametro ('P1D') por ('P15D') o ('P30D')
etc

Última edición por apustilnik; 08/07/2013 a las 19:05
  #5 (permalink)  
Antiguo 20/07/2013, 20:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fecha dentro de un loop

hola, te molesto con una consulta
si lo hago de la siguiente manera, no me funciona, porque?

lo hago de este modo, pero no me muestra nada

Código PHP:
Ver original
  1. $dia= date ( "n-j-Y" );
  2. $ini = new DateTime($dia);
  3.  
  4. $mas_1D = new DateInterval('P1D');
  5.  
  6. for ($i=0;$i<=3;$i++){    
  7. echo $ini->add($mas_1D)->format('n-j-Y') . '<br/>';
  8.  
  9. }
Cita:
Iniciado por Italico76 Ver Mensaje
Código PHP:
<?php
// Para PHP >= 5.3.0
$ini = new DateTime('2013-07-07'); // formato: aaaa-mm-dd

$mas_1D = new DateInterval('P1D');

for (
$i=0;$i<90;$i++){   
   echo 
$ini->add($mas_1D)->format('d-m-Y') . '<br/>';
}
Pero yo ejecutaria el script que hace lo que tiene que hacer 1 vez al dia con un cronojob, o sea... no calcularia las fechas ni nada desde PHP
  #6 (permalink)  
Antiguo 20/07/2013, 20:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Sumar fecha dentro de un loop

Asi si funciona:

Código PHP:
Ver original
  1. $hoy = date('Y-m-d');
  2.  
  3. $ini = new DateTime($hoy); // formato: aaaa-mm-dd
  4.  
  5. $mas_1D = new DateInterval('P1D');
  6.  
  7. for ($i=0;$i<=3;$i++){  
  8.    echo $ini->add($mas_1D)->format('n-j-Y') . '<br/>';
  9. }

Y a tu pregunta.... es que el constructor de la clase DateTime recibe un string en un formato especifico (!)
__________________
Salu2!

Última edición por Italico76; 20/07/2013 a las 20:28

Etiquetas: fecha, loop
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 05:55.