Cristalab

Sumar fechas

   Foros de discusión -> PHP, MySQL, Linux y Software Libre
Mensaje Autor
Mensaje Publicado: Vie Nov 11, 2005 4:40 pm     Citar   firefox 
Esto no es una pregunta, ni duda, es un pequeño aporte que quiero hacer a este foro, está es una función que permite sumar fechas, pasandole como parámetro la cantidad de días que quieres sumar, regresa la fecha futura, encontré una implementación parecida en php.net (así que ahí también pueden enontrar esto), sólo que me hice mi propia versión, y ahora la comparto con ustedes:

Código :


/*
      dateAdd(int)
      Función que calcula una fecha futura según la cantidad de días que se le proporcionen como argumento
      Versión original en http://www.php.net
      Adaptación: Aoyama (LSCA. Israel E. García)
   */
   function dateAdd($dias)
   {
      $mes = date("m");
      $anio = date("Y");
      $dia = date("d");
      $ultimo_dia = date( "d", mktime(0, 0, 0, $mes + 1, 0, $anio) ) ;
      $dias_adelanto = $dias;
      $siguiente = $dia + $dias_adelanto;
      if ($ultimo_dia < $siguiente)
      {
         $dia_final = $siguiente - $ultimo_dia;
         $mes++;
         if ($mes == '13')
         {
            $anio++;
            $mes = '01';
         }
         $fecha_final = $dia_final.'/'.$mes.'/'.$anio;         
      }
      else
      {
         $fecha_final = $siguiente .'/'.$mes.'/'.$anio;         
      }
      return $fecha_final;
   }


Y se usa así:

Código :


$fecha_futura = dateAdd(20);


Siendo 20 los días que en este ejemplo quiero adelantar. Espero les sirva Guiño
 _________________

The Concerned Life 2.0 : 9H345 1V11 1337 633K1N355 | Licencia Creativa en Twitter

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5512 Genero:Masculino
Estación Espacial: Eddie Murphy
3 Tutoriales
3 Tips

MP         
Volver arriba
Mensaje Publicado: Vie Nov 11, 2005 8:21 pm     Citar   firefox 
c00l

PD: Haz un tuto! El Bate(TM)
 _________________
NEO_JP
Aquit | Funciton | jQuery | UI

NEO_JP
BOFH

Bastard Operators From Hell Anime Bloggers
clabLevel: 5073 Genero:Masculino

5 Tutoriales
6 Tips

MP Web     Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Vie Nov 11, 2005 9:22 pm     Citar   firefox 

the_NEO_JP escribió:

c00l

PD: Haz un tuto! El Bate(TM)


Riendo Riendo Riendo Riendo Neo no entendió Riendo
pos alguien que le explique... miau miau miau
 _________________
jhony192 - cout << " Santificando mi alma, mi cuerpo, mi espiritu y mi corazón." << endl;Jedi U_U

jhony192


clabLevel: 786 Genero:Masculino
Desde el Untimo Peldaño de la Cima del Cielo
1 Tutoriales

MP Email Web   Skype  Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Vie Nov 11, 2005 9:33 pm     Citar   firefox 

the_NEO_JP escribió:

c00l

PD: Haz un tuto! El Bate(TM)


Mmm un tuto???
ya tengo uno pendiente

*Aoyama recuerda que debe terminar uno de javascript + css para impresiones personalizadas... Aw Crap
 _________________

The Concerned Life 2.0 : 9H345 1V11 1337 633K1N355 | Licencia Creativa en Twitter

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5512 Genero:Masculino
Estación Espacial: Eddie Murphy
3 Tutoriales
3 Tips

MP         
Volver arriba
Mensaje Publicado: Sab Nov 12, 2005 1:34 am     Citar   firefox 

Aoyama escribió:

javascript + css para impresiones personalizadas

¿ uh ? O_o
 _________________
NEO_JP
Aquit | Funciton | jQuery | UI

NEO_JP
BOFH

Bastard Operators From Hell Anime Bloggers
clabLevel: 5073 Genero:Masculino

5 Tutoriales
6 Tips

MP Web     Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Sab Nov 12, 2005 8:17 pm     Citar   firefox 
Juas! no me exprese bien... es algo que hice hace unos meses, usando Javasciprt y CSS para controlar lo que quiero imprimir ...
 _________________

The Concerned Life 2.0 : 9H345 1V11 1337 633K1N355 | Licencia Creativa en Twitter

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5512 Genero:Masculino
Estación Espacial: Eddie Murphy
3 Tutoriales
3 Tips

MP         
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 4:24 am     Citar   firefox 

Código :

<?php
function cambiarFecha($dias){
   if ($dias>0){   
      return date('d/m/Y', strtotime('+'.$dias.' days'));
   }
   return date('d/m/Y', strtotime('-'.$dias.' days'));

}
echo "Hoy: ".cambiarFecha(0)."<br>";
echo "Menos 20: ".cambiarFecha(-20)."<br>";
echo "Mas 20: ".cambiarFecha(+20)."<br>";
echo "Mas 30: ".cambiarFecha(+30)."<br>";
echo "Mas 365: ".cambiarFecha(+365)."<br>";
?>


miau

PD: es posible que jhony192 no entienda, le explico si se ejecuta un return las siguientes lineas de código dentro de la funcion NO se ejecuta Guiño

Edición: para colocar el PD Lengua
 _________________
«That is not dead which can eternal lie! And with strange aeons Even death may die!» H. P. Lovecraft

Hemisferio izquierdo - ¡No uses extract!

Maikel
BOFH

Bastard Operators From Hell
clabLevel: 3986 Genero:Masculino
Donde todo es permitido... Venezuela
6 Tutoriales
3 Tips

MP Web         
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 2:00 pm     Citar   firefox 
Maikel, como recomendación a ti y a todo el que lea esto, a las funciones se les hace UN SOLO return no 2, ni 3, ni 4, 1 y solo 1, claro tu codigo igual funcionara pero 1 solo return entra a aquello que llaman buenas practicas de programación Guiño


SAludos
 _________________
Metal, Alternativo, Heavy, Gothic, TODO sobre rock en Intro ~ el blog de un antidepresivo

Prozac
SWAT Team

SWAT
clabLevel: 1546 Genero:Masculino
donde se regresa el viento
1 Tutoriales

MP Email Web     Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 6:55 pm     Citar   firefox 

Prozac escribió:

a las funciones se les hace UN SOLO return no 2, ni 3, ni 4
Eso depende del caso; por ejemplo, en las funciones recursivas, varios return resuelven mas facil un problema, evitando crear mas variables temporales.

Pero tienes razon, en general, es mejor que solo un punto sea la salida de la función
 _________________

Freddie
BOFH

Admin
clabLevel: 43455
Un avión, camino a tu casa
25 Tutoriales
6 Tips
43 Ejemplos

MP Email Web     Google Talk    
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 7:22 pm     Citar   firefox 
no pude entender el code Llorando Llorando Llorando

pero lo pude mejorar Riendo

Código :

<?php
function cambiarfecha($dias){
return date('d/m/Y', strtotime($dias.' days'));
}
?>
Hoy: <?=cambiarFecha('0')?><br />
Menos 20: <?=cambiarfecha('-20')?><br />
Mas 20: <?=cambiarfecha('+20')?><br />
Mas 30: <?=cambiarfecha('+30')?><br />
Mas 365: <?=cambiarfecha('+365')?><br />


Ahora di que me odias miau miau miau
 _________________
jhony192 - cout << " Santificando mi alma, mi cuerpo, mi espiritu y mi corazón." << endl;Jedi U_U

jhony192


clabLevel: 786 Genero:Masculino
Desde el Untimo Peldaño de la Cima del Cielo
1 Tutoriales

MP Email Web   Skype  Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 7:45 pm     Citar   firefox 

jhony192 escribió:

Ahora di que me odias miau miau miau
Te queremos jhony192
Ahora toma esta moneda de 3 centavos, ve y comprate un helado miau
 _________________

Freddie
BOFH

Admin
clabLevel: 43455
Un avión, camino a tu casa
25 Tutoriales
6 Tips
43 Ejemplos

MP Email Web     Google Talk    
Volver arriba
Mensaje Publicado: Mar Nov 15, 2005 7:49 pm     Citar   firefox 

jhony192 escribió:

Ahora di que me odias miau miau miau

[modo_sarcasm]Alguien tiene que reconocer tu aporte jhony192... mmmm[/modo_sarcasm]
Muy bien, creo que este tema ayudará a muchos por aca... de hecho, lo convierto en post it (las troleadas y offtopic serán quitadas...).

P.D. Sephirot, muy buena iniciativa!
 _________________

¡Cheque Pues! | Xportivo
Reglas del Foro || Guia para hacer preguntas y obtener ayuda efectiva

Pedro
BOFH

Bastard Operators From Hell Premio_Secretos
clabLevel: 3079 Genero:Masculino
...
2 Tutoriales
1 Tips

MP Web       MSN Messenger  
Volver arriba
Mensaje Publicado: Mie Ene 23, 2008 11:58 am     Citar   firefox 
Me parece mas practico pasar las fechas a segundos y luego restarlas, sumarlas etc

sk8erboi


clabLevel: 48 Genero:Masculino



MP         
Volver arriba
Mensaje Publicado: Mie Ene 23, 2008 5:26 pm     Citar   firefox 
esto me va a servir muchas gracias.!

jripper


clabLevel: 167 Genero:Masculino


2 Tips

MP         
Volver arriba
Responder al tema    Foros de discusión -> PHP, MySQL, Linux y Software Libre Todas las horas son GMT
Página 1 de 1

Respuesta Rapida

  Citar el ultimo mensaje
Adjuntar tu firma

Mostrar mensajes de anteriores:
  

 


Cristalab BloodBerry Style © 2006 Cristalab
Powered by phpBB © 2001, 2002 phpBB Group