Foros del Web » Programando para Internet » PHP »

Como sumarle dias a una fecha???

Estas en el tema de Como sumarle dias a una fecha??? en el foro de PHP en Foros del Web. Hola. que debo hacer o que función utilizar si deseo sumarle 20 días al valor de la fecha actual; por ejemplo: $nueva_fecha=date("yyyy/mm/dd") ahora quiero que ...
  #1 (permalink)  
Antiguo 25/05/2005, 14:59
Avatar de robertonavarro  
Fecha de Ingreso: octubre-2004
Mensajes: 72
Antigüedad: 20 años, 1 mes
Puntos: 1
Pregunta Como sumarle dias a una fecha???

Hola. que debo hacer o que función utilizar si deseo sumarle 20 días al valor de la fecha actual; por ejemplo:

$nueva_fecha=date("yyyy/mm/dd")

ahora quiero que $nueva_fecha valga 20 días más que la fecha de hoy


Sugerencias!!!!
  #2 (permalink)  
Antiguo 25/05/2005, 15:29
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Humm

Pues no se si existe una funcion directa, pero puedes usar las funciones de mktime, etc, las conviertes a a valores normales y luego la regresas a formato fecha.

Tambien quisiera saber si existe una funcion directa.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #3 (permalink)  
Antiguo 25/05/2005, 16:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Código PHP:
echo date("Y/m/d"strtotime("now +20 day")); 
www.php.net/date
www.php.net/strtotime

pero si vaz a insertar esto en una BD mejor usar la función SQL DATE_ADD().

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 25/05/2005, 16:37
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola

Jam, sabes si existe una funcion como en ASP, algo como

DateAdd("TIPO_UNIDAD", "CUANTO", "FECHA_ORIGIANAL)

??

Gracias.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #5 (permalink)  
Antiguo 25/05/2005, 17:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
.. bueno, puedes hacer eso con strtotime() y mktime() como lo dijiste... el problema es el formato de salida, para eso hay que usar date()... desconosco una función PHP que haga todo de forma directa.... ... .... ... me parece strtotime() puede hacerlo habrá que leer la documentación oficial...

En SQL sí existe una función directa pués el formato es base... sería DATE_ADD("fecha_original", INTERVAL cantidad UNIDAD). Igual existe DATE_SUB() con los mismos parámetros... Chekate www.mysql-hispano.org

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 25/05/2005, 17:11
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Gracias.

Si, hasta ahorita no he encontrado nada directo en PHP, y la verdad como no lo he ocupado pues nunca lo he investigado a fondo, gracias.

ANEXO: Dentro de MySql si lo he hecho, porque ahi si lo he necesitado (y)
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #7 (permalink)  
Antiguo 26/05/2005, 06:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mm bueno .. si no hay función en PHP nativa .. si que podrás crearte la tuya equivalente exactamente a lo que usas en ASP.

Como no conozco ASP ni esa función .. si describes sus parámetros y que rangos o formatos acepta .. podríamos ver de implementar algo así como ejercicio.

Por ejemplo .. ¿que formato tiene la fecha origen? (dd/mm/aaaa .. otro? .. acepta vários formatos? ... ). "Tipo unidad" .. supongo que le diras algo como "D" (dias), "M" (meses) o "A" (años) .. o si hay horas, minutos y/o segundos ... como corresponda.

Realmente no sería complejo implementar dicha función -tal cual- funciona la versión ASP. De hecho ya conoceras que tendríamos que usar en PHP las funciones básicas: mktime() o strtotime(), date() ..

Un saludo,
  #8 (permalink)  
Antiguo 26/05/2005, 06:50
 
Fecha de Ingreso: agosto-2004
Mensajes: 95
Antigüedad: 20 años, 2 meses
Puntos: 2
Código PHP:
function operacion_fecha ($fecha,$dias) {
list (
$dia,$mes,$ano)=explode("-",$fecha);
if (!
checkdate($mes,$dia,$ano)){return false;}
$dia=$dia+$dias;
$fecha=date"d-m-Y"mktime(0,0,0,$mes,$dia,$ano) );
return 
$fecha;
}

//restar dos días
echo operacion_fecha('01-08-2004',-2);

//Sumar 1 día
echo operacion_fecha('01-08-2004',1); 
__________________
Marco de Arica (Chile)

Última edición por marcomartinez; 26/05/2005 a las 07:05
  #9 (permalink)  
Antiguo 26/05/2005, 09:17
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Bien...

Como digo, nunca me he metido a fondo porque no lo he ocupado, pero me gusta la idea de implementar la funcion.

Ahi esta una liga, las funciones son DateDiff y DateAdd

http://www.programacion.com/asp/tutorial/vbscript/11/

El formato directo de la fecha en ASP depende de tu configarcion de servidor, esa funciona automaticamente repeta el formato segun tu lenguaje etc, es decir, si estas usando algo en español respetara DD/MM/AAAA, pero si etas usando algo en ingles que es lo mas comun, MM/DD/AAAA.

Y bueno, en mi poca experiencia en el tema la funcion de marcomartinez me parece muy buena, aunque faltan parametros que la hagan mas completa.

Bueno, pues espero que aprendamo mas acerca de fechas.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #10 (permalink)  
Antiguo 26/05/2005, 09:45
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 20 años
Puntos: 0
aqui tengo una funcion que te puede servir
Código PHP:
function SumarDias($Fecha$Dias) {

    if(
substr_count($Fecha"/") == 2)
        
$Separador "/";
    if(
substr_count($Fecha"-") == 2)
        
$Separador "-";
    if(
substr_count($Fecha".") == 2)
        
$Separador ".";

    list( 
$a$b$c ) = split"[/.-]"$Fecha );
    if(
$a 31) {
        
$anyo $a;
        
$mes $b;
        
$dia $c;
        return 
date("Y".$Separador."m".$Separador."d",mktime(0,0,0,$mes,$dia+$Dias,$anyo));
    }
    else {
        
$anyo $c;
        
$mes $b;
        
$dia $a;
        return 
date("d".$Separador."m".$Separador."Y",mktime(0,0,0,$mes,$dia+$Dias,$anyo));
    }
        

Suerte !!!
  #11 (permalink)  
Antiguo 26/05/2005, 09:54
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 20 años
Puntos: 0
aqui tengo algo que te puede servir
Código PHP:
function SumarDias($Fecha$Dias) {

    if(
substr_count($Fecha"/") == 2)
        
$Separador "/";
    if(
substr_count($Fecha"-") == 2)
        
$Separador "-";
    if(
substr_count($Fecha".") == 2)
        
$Separador ".";

    list( 
$a$b$c ) = split"[/.-]"$Fecha );
    if(
$a 31) {
        
$anyo $a;
        
$mes $b;
        
$dia $c;
        return 
date("Y".$Separador."m".$Separador."d",mktime(0,0,0,$mes,$dia+$Dias,$anyo));
    }
    else {
        
$anyo $c;
        
$mes $b;
        
$dia $a;
        return 
date("d".$Separador."m".$Separador."Y",mktime(0,0,0,$mes,$dia+$Dias,$anyo));
    }
        

...Suerte !!!
  #12 (permalink)  
Antiguo 26/05/2005, 10:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. propuestas ya tienen .. realmente se puede completar tanto como gustes ..

Las funciones de tratamiento de fechas son las que aquí hemos visto .. sólo faltaría algo de lógica para aceptar algo más de formatos de fecha de entrada y en consecuencia así devolverla ..con el mismo formato.

Para no ponerme a reinventar la rueda una vez más .. Aquí veras muchas (classes) para trabajar con fechas .. de todo tipo: calculos, formateadores .. etc .. etc.
http://phpclasses.promoxy.com/browse/class/9.html

Un saludo,
  #13 (permalink)  
Antiguo 26/05/2005, 10:10
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola

Gracias a todos !!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
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 21:28.