Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sumar fechas

Estas en el tema de Sumar fechas en el foro de PHP en Foros del Web. hola amigos del foro, aquí nuevamente me encuentro en un pequeño entuerto, que es el siguiente supongamos que a una fecha le quiero sumar x ...
  #1 (permalink)  
Antiguo 18/02/2015, 20:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Sumar fechas

hola amigos del foro, aquí nuevamente me encuentro en un pequeño entuerto, que es el siguiente
supongamos que a una fecha le quiero sumar x cantidad de días, pero esa fecha no es la actual, sino por ejemplo la fecha de mañana.
Para obtener dicha fecha (en este caso la de mañana) es sabido que en php debemos hacer lo siguiente

$fecha_actual= date('j-n-y');
$fecha_de_mañana= date('j-n-y', strtotime('+1 day'));

Ahora mi asunto es, si a esa variable $fecha_de_mañana a su vez quiero sumarle x cantidad de días, como se hace???
Agradezco desde ya su ayuda.
Saludos,
Ariel
  #2 (permalink)  
Antiguo 18/02/2015, 20:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sumar fechas

Por favor, consulta el manual para funciones de fecha y hora: ahí se explica cómo se usan las funciones que comentas.

No hace falta abrir un tema cuando puedes revisar la documentación.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/02/2015, 21:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

busque, pero no encontré como hacerlo, hace falta responder con un reto?? no somos niños de 10 años.....

Cita:
Iniciado por pateketrueke Ver Mensaje
Por favor, consulta el manual para funciones de fecha y hora: ahí se explica cómo se usan las funciones que comentas.

No hace falta abrir un tema cuando puedes revisar la documentación.
  #4 (permalink)  
Antiguo 18/02/2015, 22:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sumar fechas

¿Si sabes leer verdad?

La función strtotime() acepta un segundo argumento, que sería la fecha inicial en formato timestamp.

Cita:
int strtotime ( string $time [, int $now = time() ] )
Suponiedo que tienes una fecha dada, tal vez mañana, primero debes convertirla a timestamp porque date() devuelve una reresentación textual y no un timestamp.

Código PHP:
Ver original
  1. $cantidad_de_dias = 3; // esta es un variable, y puede representar lo que quieras
  2.  
  3. var_dump(date('r', strtotime("+$cantidad_de_dias days", strtotime('2015-02-18')))); // Sat, 21 Feb 2015 00:00:00 -0600

¿Ahora entiendes?

Por eso debes leer bien el manual, además de practicar con las opciones y argumentos.

Si no encontraste una forma de hacer será porque seguramente no intentaste nada adicional a lo que muestras.

Hasta los niños son más curiosos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/02/2015, 10:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

perdón, pero no se entiende bien como funciona,
si mi fecha de mañana es por ejemplo:

$fecha_de_mañana= date('j-n-y', strtotime('+1 day'));

como hago para sumarle x cantidad de días a esa variable $fecha_mañana?????
  #6 (permalink)  
Antiguo 19/02/2015, 11:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sumar fechas

Para eso es la función strtotime(), que convierte la fecha que has generado en timestamp, y de ahí de nuevo debes usar strtotime() para añadirle los días.

Me sorprende porque el ejemplo que te he colocado hace exactamente eso, si lo lees bien, y sobre todo si lo sabes interpretar.

Código PHP:
Ver original
  1. $fecha_de_mañana= date('j-n-y', strtotime('+1 day'));
  2. $dias_a_añadir = 3;
  3.  
  4. var_dump(strtotime("+$dias_a_añadir days", strtotime($fecha_de_mañana)));

¿Ya se entiende mejor?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 19/02/2015, 11:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

la nueva consulta viene justamente, porque lo probe y no funciona correctamente
si le hago un echo a $fecha_mañana, me imprime esto....

$dias_a_añadir = 3;

20-2-15 (esto estaría bien, que viene siendo la fecha de mañana)
int(259200) (pero esto, que es?? y porque se imprime automaticamente) y en todo caso como lo convierto en formato fecha


Cita:
Iniciado por pateketrueke Ver Mensaje
Para eso es la función strtotime(), que convierte la fecha que has generado en timestamp, y de ahí de nuevo debes usar strtotime() para añadirle los días.

Me sorprende porque el ejemplo que te he colocado hace exactamente eso, si lo lees bien, y sobre todo si lo sabes interpretar.

Código PHP:
Ver original
  1. $fecha_de_mañana= date('j-n-y', strtotime('+1 day'));
  2. $dias_a_añadir = 3;
  3.  
  4. var_dump(strtotime("+$dias_a_añadir days", strtotime($fecha_de_mañana)));

¿Ya se entiende mejor?
  #8 (permalink)  
Antiguo 19/02/2015, 12:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sumar fechas

Y sigues sin saber leer.

El manual dice exactamente que strtotime() devuelve un timestamp, mientras que date() usa un timestamp para darle formato a la fecha.

Un timestamp es un número y nada más, eso es lo que te muestra mi segundo ejemplo.

Y te lo dije desde el inicio, y lo puse en mi primer ejemplo.

¿Exactamente qué parte es la que no entiendes?

Sólo debes usar date() para darle formato.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 20/02/2015, 08:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

todo bien, pero en resumen, se supone que si alguien acude al foro a consultar algo, es porque no es un experto y no sabe como resolverlo, si supiese como hacerlo, no pierdo tiempo escribiendo obviamente, entonces mas alla de todas las lecciones de vida, como se convertiría en este caso ese numero que decis que sale por defecto, a formato de fecha??
  #10 (permalink)  
Antiguo 20/02/2015, 10:06
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Sumar fechas

Es sencillo lo que quieres, pero necesitas leer la documentación con frecuencia es la única forma de aprender y estar al día en el lenguaje
Código PHP:
Ver original
  1. $today = new DateTime();
  2. $nextDate = $today->modify('+1 day');
  3. echo $nextDate->format('Y-m-d');
Te dejo un articulo adicional de una clase que hace lo que precisas: https://thinkingoo.wordpress.com/201...ys-calculator/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 20/02/2015, 11:31
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

hola antes que nada muchas gracias por la respuesta, pero creo que no fui muy claro en mi consulta, si fue asi, disculpas.
mi pregunta es muy sencilla, pero hasta ahora por muy sencilla no obtuvimos una respuesta que haga esto.
la consulta es simple;

tenemos una fecha actual, si?
$fecha_actual= date('j-n-y');

ahora supongamos (podríamos hablar de cualquier fecha futura) que quiero sumarle 5 días (la cantidad puede ser cualquiera) a la fecha de mañana, lo cual para obtenerla, obviamente le sumamos 1 día a la fecha de hoy, es asi?? entonces guardamos en la variable que vemos abajo, la fecha de mañana, como se ve
$fecha_de_mañana= date('j-n-y', strtotime('+1 day'));

ahora la consulta es, si a esta variable $fecha_de_mañana a su vez quiero volver a sumarle x cantidad de días, supongamos 5 (por poner un numero cualquiera)
como hago?????



Cita:
Iniciado por hhs Ver Mensaje
Es sencillo lo que quieres, pero necesitas leer la documentación con frecuencia es la única forma de aprender y estar al día en el lenguaje
Código PHP:
Ver original
  1. $today = new DateTime();
  2. $nextDate = $today->modify('+1 day');
  3. echo $nextDate->format('Y-m-d');
Te dejo un articulo adicional de una clase que hace lo que precisas: https://thinkingoo.wordpress.com/201...ys-calculator/
  #12 (permalink)  
Antiguo 20/02/2015, 11:42
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Sumar fechas

No es que no seas claro en la consulta; eres espeso en la lectura.
__________________
(:
  #13 (permalink)  
Antiguo 20/02/2015, 11:42
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Sumar fechas

Cita:
Iniciado por apustilnik Ver Mensaje
ahora la consulta es, si a esta variable $fecha_de_mañana a su vez quiero volver a sumarle x cantidad de días, supongamos 5 (por poner un numero cualquiera)
como hago?????
Está claro lo que tienes que hacer en los ejemplos ya mencionados... exactamente lo mismo pero con la fecha nueva:

Código PHP:
$today = new DateTime();

// Sumo un día a la fecha actual
$nextDate $today->modify('+1 day');

echo 
$nextDate->format('Y-m-d').'<br />';

// Sumo 5 días a la fecha nueva
$moreDaysDate $nextDate->modify('+5 day');

echo 
$moreDaysDate->format('Y-m-d'); 
  #14 (permalink)  
Antiguo 20/02/2015, 11:44
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Sumar fechas

No entiendo cual es el problema, solo tienes que volver a hacer el calculo pero ahora con la nueva fecha.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #15 (permalink)  
Antiguo 20/02/2015, 17:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Sumar fechas

Excelente! Respuesta clara, corta y concisa, un simple ejemplo aplicado
mil gracias por tu respuesta y el aporte, no solo a mi pregunta, sino
a todos aquellos que como yo no son expertos y necesitan resolver una situacion puntual.
Abrazo
Cita:
Iniciado por geekgirl Ver Mensaje
está claro lo que tienes que hacer en los ejemplos ya mencionados... Exactamente lo mismo pero con la fecha nueva:

Código PHP:
$today = new datetime();

// sumo un día a la fecha actual
$nextdate $today->modify('+1 day');

echo 
$nextdate->format('y-m-d').'<br />';

// sumo 5 días a la fecha nueva
$moredaysdate $nextdate->modify('+5 day');

echo 
$moredaysdate->format('y-m-d'); 

Etiquetas: fecha, variable
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 18:58.