Cristalab

Sumar fechas

Citar            
MensajePublicado: Vie Nov 11, 2005 4:40 pm

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

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5709 Genero:Masculino
El infinito y más allá

3 Tutoriales
3 Tips

firefox
      MP    
Citar            
MensajePublicado: Vie Nov 11, 2005 8:21 pm

c00l

PD: Haz un tuto! El Bate(TM)

NEO_JP
BOFH

Bastard Operators From Hell Anime Bloggers
clabLevel: 5093
Lima, Peru

5 Tutoriales
6 Tips

firefox
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: Vie Nov 11, 2005 9:22 pm

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


clabLevel: 803
Desde el Untimo Peldaño de la Cima del Cielo

1 Tutorial

firefox
Google Talk   MSN Messenger     MP   Email   Web
Citar            
MensajePublicado: Vie Nov 11, 2005 9:33 pm

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

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5709 Genero:Masculino
El infinito y más allá

3 Tutoriales
3 Tips

firefox
      MP    
Citar            
MensajePublicado: Sab Nov 12, 2005 1:34 am

Aoyama escribió:

javascript + css para impresiones personalizadas

¿ uh ? O_o

NEO_JP
BOFH

Bastard Operators From Hell Anime Bloggers
clabLevel: 5093
Lima, Peru

5 Tutoriales
6 Tips

firefox
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: Sab Nov 12, 2005 8:17 pm

Juas! no me exprese bien... es algo que hice hace unos meses, usando Javasciprt y CSS para controlar lo que quiero imprimir ...

Aoyama
BOFH

Anime Bloggers Bastard Operators From Hell Héroes
clabLevel: 5709 Genero:Masculino
El infinito y más allá

3 Tutoriales
3 Tips

firefox
      MP    
Citar            
MensajePublicado: Mar Nov 15, 2005 4:24 am

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

Maikel
BOFH

Bastard Operators From Hell
clabLevel: 4016 Genero:Masculino
Donde todo es permitido... Venezuela

6 Tutoriales
3 Tips

firefox
      MP     Web
Citar            
MensajePublicado: Mar Nov 15, 2005 2:00 pm

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

Prozac
SWAT Team

SWAT
clabLevel: 1548 Genero:Masculino
donde se regresa el viento

1 Tutorial

firefox
Google Talk   MSN Messenger     MP   Email   Web
Citar            
MensajePublicado: Mar Nov 15, 2005 6:55 pm

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

Red Synapse

25 Tutoriales
7 Tips
43 Ejemplos

firefox
Google Talk       MP   Email   Web
Citar            
MensajePublicado: Mar Nov 15, 2005 7:22 pm

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


clabLevel: 803
Desde el Untimo Peldaño de la Cima del Cielo

1 Tutorial

firefox
Google Talk   MSN Messenger     MP   Email   Web
Citar            
MensajePublicado: Mar Nov 15, 2005 7:45 pm

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

Red Synapse

25 Tutoriales
7 Tips
43 Ejemplos

firefox
Google Talk       MP   Email   Web
Citar            
MensajePublicado: Mar Nov 15, 2005 7:49 pm

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!

Pedro
BOFH

Bastard Operators From Hell Premio_Secretos
clabLevel: 3091 Genero:Masculino
...

2 Tutoriales
1 Tip

firefox
  MSN Messenger     MP     Web
Citar            
MensajePublicado: Mie Ene 23, 2008 11:58 am

Me parece mas practico pasar las fechas a segundos y luego restarlas, sumarlas etc

sk8erboi


clabLevel: 56 Genero:Masculino



firefox
      MP    
Citar            
MensajePublicado: Mie Ene 23, 2008 5:26 pm

esto me va a servir muchas gracias.!

jripper


clabLevel: 168 Genero:Masculino


2 Tips

firefox
      MP    

   Página 1 de 1

Responder al tema
Respuesta Rapida


 

 

Cristalab BabyBlue + BloodBerry © 2007 Cristalab
Powered by phpBB © 2001, 2007 phpBB Group