Foros del Web » Programando para Internet » PHP »

Sumar fechas

Estas en el tema de Sumar fechas en el foro de PHP en Foros del Web. Hola, tengo el siguiente código, el cual funciona muy bien y me muestra la fecha que será mañana: Código PHP: $fecha =  date ( "j-n-Y" ...
  #1 (permalink)  
Antiguo 25/08/2011, 09:36
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 17 años, 5 meses
Puntos: 0
Sumar fechas

Hola, tengo el siguiente código, el cual funciona muy bien y me muestra la fecha que será mañana:

Código PHP:
$fechadate("j-n-Y",strtotime("+ 1 day"));
echo 
$fecha
El problema es que en vez de pasarle como dato la fecha de hoy, necesito pasarle una fecha equis en cadena de texto, por ejemplo: 25-08-2011 y que a eso le sume un dia. probé con el siguiente código pero no ha funcionado:

Código PHP:
$dia "25-08-2011";
$fechadate($diastrtotime("+ 1 day"));
echo 
$fecha
Como dije, esto no fuciona, me devuelve siempre la misma fecha que inserto en la variable $dia.

¿Alguien podría orientarme sobre como solucionar esto?

Gracias!
  #2 (permalink)  
Antiguo 25/08/2011, 09:46
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Sumar fechas

Tienes la función date_add, que no es más que un alias para DateTime::add, si ves los ejemplos la puedes utilizar así:
Código PHP:
Ver original
  1. $date = date_create('2000-01-01');
  2. date_add($date, date_interval_create_from_date_string('1 days')); // o 1 day, no recuerdo bien.
  3. echo date_format($date, 'Y-m-d');

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 25/08/2011, 09:56
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Sumar fechas

Cita:
Iniciado por vgonga1986 Ver Mensaje
Tienes la función date_add, que no es más que un alias para DateTime::add, si ves los ejemplos la puedes utilizar así:
Código PHP:
Ver original
  1. $date = date_create('2000-01-01');
  2. date_add($date, date_interval_create_from_date_string('1 days')); // o 1 day, no recuerdo bien.
  3. echo date_format($date, 'Y-m-d');

Un saludo.
Lo probé pero me tira un error de la funcion date_create:

Call to undefined function date_create() in \\hmfsw\web\dtcwin063\problemasya.com.ar\public_ht ml\phpya\usuarios\190.17.165.24\pagina1.php on line 8
  #4 (permalink)  
Antiguo 25/08/2011, 10:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Sumar fechas

Código PHP:
Ver original
  1. <?php
  2. $fechax = '29-08-2011';
  3. echo date('d-m-Y', strtotime($fechax . '+ 1 day'));
  4. //Resultado: 30-08-2011

Si haces mal uso de las funciones seguro que no te va a funcionar. Te recomiendo que leas sobre la función date() y strtotime(). Saludos

strtotime
date
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 25/08/2011, 10:07
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Sumar fechas

A mí esto me funciona perfectamente:
Código PHP:
Ver original
  1. $fecha = date_create('2000-01-01');
  2. date_add($fecha, date_interval_create_from_date_string('1 days'));
  3. echo date_format($fecha, 'd-m-Y');

Qué versión de PHP tienes? Es que las funciones date_create y date_add son alias de las funciones de la librería DateTime, si no te funciona probablemente es que no tengas una versión de PHP que las tenga incluidas de por si. Tendrás que utilizar las funciones de DateTime tal cual, búscalo en el link que te pasé antes, vendrán ejemplos.

Un saludo.

PD: por ejemplo:
Código PHP:
Ver original
  1. $fecha = new DateTime('2000-01-01');
  2. $fecha->add(new DateInterval('P1D'));
  3. echo $fecha->format('d-m-Y') . "\n";
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 25/08/2011 a las 10:09 Razón: Añadir PD
  #6 (permalink)  
Antiguo 25/08/2011, 12:19
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Sumar fechas

Cita:
Iniciado por vgonga1986 Ver Mensaje
A mí esto me funciona perfectamente:
Código PHP:
Ver original
  1. $fecha = date_create('2000-01-01');
  2. date_add($fecha, date_interval_create_from_date_string('1 days'));
  3. echo date_format($fecha, 'd-m-Y');

Qué versión de PHP tienes? Es que las funciones date_create y date_add son alias de las funciones de la librería DateTime, si no te funciona probablemente es que no tengas una versión de PHP que las tenga incluidas de por si. Tendrás que utilizar las funciones de DateTime tal cual, búscalo en el link que te pasé antes, vendrán ejemplos.

Un saludo.

PD: por ejemplo:
Código PHP:
Ver original
  1. $fecha = new DateTime('2000-01-01');
  2. $fecha->add(new DateInterval('P1D'));
  3. echo $fecha->format('d-m-Y') . "\n";
Lo probe en PHP 5.2.1 y no anduvo. En la 5.3.5 sí funciona.

Y andresdzphp, gracias, tu código anduvo a la perfección.
  #7 (permalink)  
Antiguo 25/08/2011, 12:32
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Sumar fechas

Cita:
Iniciado por FantasmaFito Ver Mensaje
Hola, tengo el siguiente código, el cual funciona muy bien y me muestra la fecha que será mañana:

Código PHP:
$fechadate("j-n-Y",strtotime("+ 1 day"));
echo 
$fecha
El problema es que en vez de pasarle como dato la fecha de hoy, necesito pasarle una fecha equis en cadena de texto, por ejemplo: 25-08-2011 y que a eso le sume un dia. probé con el siguiente código pero no ha funcionado:

Código PHP:
$dia "25-08-2011";
$fechadate($diastrtotime("+ 1 day"));
echo 
$fecha


Como dije, esto no fuciona, me devuelve siempre la misma fecha que inserto en la variable $dia.

¿Alguien podría orientarme sobre como solucionar esto?

Gracias!

Hola que tal.

Lo que pasa es que estas utilizando mal la función en base a los parámetros, te dejo este ejemplo.

Código PHP:
Ver original
  1. $fecha='01/01/2001';
  2. echo date("d/m/Y", strtotime($fecha."+1 day"));
  3.  
  4. /* Resultado = 02/01/2001 */

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #8 (permalink)  
Antiguo 25/08/2011, 12:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Sumar fechas

skiper0125 eso fue exactamente lo que yo le dije, para que repetir lo mismo.

FantasmaFito el ejemplo que te dejó vgonga1986 sólo funciona a partir de PHP 5.3.0
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 26/08/2011, 01:31
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Sumar fechas

FantasmaFito el ejemplo que te dejó vgonga1986 sólo funciona a partir de PHP 5.3.0[/QUOTE]

Yes, that's true!

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: fechas, variables
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 14:10.