Funcion PHP para Sumar Tiempo a Fechas

Escrito en February 5, 2008 – 4:45 pm | por Titux | 1,902 views

Con esta funcion es posible sumar o agregar tiempo (años, meses, dias, horas, munitos, segundos) a una fecha especifica.

PHP:
  1. function dateadd($date, $dd=0, $mm=0, $yy=0, $hh=0, $mn=0, $ss=0){
  2.     $date_r = getdate(strtotime($date));
  3.     $date_result = date("m/d/Y h:i:s", mktime(($date_r["hours"]+$hh),($date_r["minutes"]+$mn),($date_r["seconds"]+$ss),($date_r["mon"]+$mm),($date_r["mday"]+$dd),($date_r["year"]+$yy)));
  4.     return $date_result;
  5. }
  6.  
  7. $fecha = "02/04/2008"; //mes/dia/año
  8. $fecha_actualizada = dateadd($fecha,1,0,0,0,0,0); // suma 1 dia a la fecha

Lo que hace esta funcion es basicamente desarmar la fecha dada con mktime a modo de arreglo, una vez hecho esto, le suma a cada parte de la fecha los valores que le enviamos.

Espero sea de utilidad.

Bytes...

Entradas Relacionadas

  1. 14 Responses to “Funcion PHP para Sumar Tiempo a Fechas”

  2. By diver on Mar 5, 2008 | Reply

    y que pasa con el año bisiesto…..

  3. By Titux on Mar 5, 2008 | Reply

    Que tal Drive, Funciona igual.

    Saludos…

  4. By hector2c on Mar 24, 2008 | Reply

    hola, interesante script, pero tengo un problema, sumo 12 horas y me da la misma hora y fecha :SSS…

    dateadd($rs_res[’fec_hor_res’], 0, 0, 0, 12, 0, 0)

    erro en algo ??

  5. By Titux on Mar 24, 2008 | Reply

    Hola hector2c, acabo de probar la funcion sumandole 12 horas a cierta fecha y me funciona sin problemas, talvez sea el formato que tienes en $rs_res[’fec_hor_res’], checate que sea mes/dia/año en formato string.

    Saludos…

  6. By hector2c on Mar 25, 2008 | Reply

    mmm, mira, entrego este formato:
    dateadd(”03/24/2008 01:00:00″, 0, 0, 0, 12, 2, 3);

    supuestamente deberia mandar:
    03/24/2008 03:02:03

    pero entrega:
    03/24/2008 01:02:03

    no entiendo en que fallo…

  7. By hector2c on Mar 25, 2008 | Reply

    perdon, deberia mandar 13 horas, no 01
    03/24/2008 13:02:03

  8. By Titux on Mar 25, 2008 | Reply

    Ok hector2c, un pequeño mal entendido. La funcion esta haciendo bien el calculo, solo que la funcion date(), de la linea 3, esta regresando la fecha en formato de 12 horas, por eso, si a la 1 am le sumas 12 horas te regresa la 1 pm.

    Si lo que deseas es que aparezca en formato de 24 horas, tienes que cambiar el formato que regresa la funcion date(), simplemente cambia por “H” MAYUSCYULA el formato de la hora, que quede asi: “m/d/Y H:i:s” y con esto te regresara las 13 horas en lugar de la 1 .

    Bueno, espero haberme explicado, sino con todo gusto te explico de nuevo, si gustas por messenger.

    Saludos.

  9. By atomoclip on Mar 26, 2008 | Reply

    Muy bueno, pero si deseo que no se cuente los sabados y domingos?.

    Gracias

  10. By Titux on Mar 26, 2008 | Reply

    Bueno, esta funcion es solo un dateadd para php, pero podemos tunearla para que haga lo que queremos, me parece util lo que comentas de eliminar Sabados y Domingos o igual de una manera opcional.

    Si me da tiempo la empezare a especializar, eh incluso creo que estaria bien hacerla en una clase, configurarle dias no labolares, etc, pero bueno, mas delante hare otro post con las mejoras a esta funcion.

    Que bueno que les sirve y esperemos mas…

    Hasta Pronto y Gracias por los comentarios.

  11. By Dante Robles on Mar 31, 2008 | Reply

    Compadre su funcion es una cosa que me saco de apuros, excelente, yo solo la use para generar un listado de horas tipo calendario Outlook en el que me te despliega dependiendo del dia las horas para agendar en un dia ,

    Saludos

    Dante

  12. By Titux on Apr 1, 2008 | Reply

    Perfecto, es bueno saber que algo que hacemos es util a la comunidad, jejeje, comoquiera, pronto le meteremos mejoras a esta funcion.

    Saludos y Provecho

  13. By Tom on Apr 11, 2008 | Reply

    I saw similar post three month ago. Topicality of this post sucks. Dude, you have to keep up to date.

  14. By Armadillo on Jun 22, 2008 | Reply

    Excelente funcion… Ahora quisiera saber como puedo acomodar una imagen en una tabla sin distorcionar su Area (ancho y alto), Por Ejemplo: tengo una tabla de 400 x 450 y en el centro coloco varias imagenes, algunas de 800 x 100, 100 x 500… Si la imagen tiene un area de 400 x 450 seria genial por que encaja perfectamente en la Tabla, pero si la imagen sobrepasa los 400 de ancho me dañaria la tabla y si sobrepasa los 450 de alto tambien. entonces quisiera acomodar la imagen de 800 x 100 en la tabla sin que me dañe la tabla y que el area de la imagen se mantenga conforme a su tamaño original. como es¿?

  1. 1 Trackback(s)

  2. Feb 5, 2008: Funcion PHP para Sumar Tiempo a Fechas | DamageBlog

Post a Comment

Acerca De

Alterbrain - Tecnologia, Programacion Web, MySQL, Diseño, Tips, Noticias y Mas.

Buscar Post :