PHP 5.2 y operaciones de fecha

admin

September 13, 2012

PHP

No Comment

Recientemente me encontraba desarrollando una aplicación web para PHP y configuré mi ambiente de desarrollo con un WAMP, que contenía una versión de PHP superior a la 5.3.  Encantado comencé a utilizar operaciones y funciones de su orientación a objetos, pero al pasar a ambiente de producción, me doy cuenta de que utilizaba una versión anterior de PHP ¡que no soporta funciones de objeto DateTime!

Especificamente, sumar y restar fechas, DateTime::add y DateTime:sub, ni sus equivalentes en procedural date_add() y date_sub.

Esto implicó una recodificación (aunque no tan larga) y la creación de funciones que permitiran hacer las operaciones con una facilidad parecida a la de las funciones no soportadas.

Para resolver el problema, en una librería general codifiqué funciones para agregar las fechas, sean positivas o negativas, eliminando la necesidad de tener un date_add y un date_sub. Una función por cada intervalo que necesitaba, como lo maneja C#.

A continuación expongo un ejemplo de la función para agregar días.

    /**
    *
    * Agrega dias a una fecha
    * @param datetime $date
    * @param int $days
    * @return DateTime
    */
    function add_days($date, $days)
    {
      // Inicializamos el símbolo, como “más” ( + )
      $symbol = ‘+’;
     
      //    Si días es menor a 0, es decir, negativo
      if ( $days < 0 )
      {
            //    Configuramos el símbolo como “menos” ( – )
            $symbol = ‘-‘;
      }
     
      //    Hacemos la operación y la guardamos en result
      //    Convirtiendo a UNIXTIME mediante strtotime
      //    el intervalo y la fecha
      $result = strtotime (
            ‘+’ . $days . ‘ day’ ,
            strtotime (
                  date_format($date, ‘Y-m-d’)
            )
      );
     
      //    Regresamos una fecha, a partir del resultado
      //    transformado a formato Y-m-d
      return date_create( date( ‘Y-m-d’, $result ) );
    } // end function add_days
 

Siguiendo este ejemplo, podemos codificar las funciones para semanas, meses, años, etc.

Related Posts

Php Quikies: Optimización de Memoria

admin

February 12, 2019

PHP

No Comment

¿Te ha pasado que al correr un script Php te agotas la memoria y te bota un “Allowed Memory Size Exhausted”? Si es así, hay de dos sopas: Aumentar la memoria permitida. Esta es la opción rápida y sucia, no es eficiente, no muy recomendable, o mejor dicho, para nada en absoluto. Eficientizar el uso […]

Read More

Php & gs: Modificar una imágen, guardarla como Pdf y unirla a otro archivo

admin

September 11, 2018

PHP

No Comment

Estaba actualizando mi libro “Correteando la Chuleta“, disponible de forma gratuita aqui, me parece buena idea mandar ediciones personalizadas con un reconocimiento a los lectores, y me di a la tarea de automatizar este proceso. Mi intención es tener un script que mande llamar con solamente el nombre como parámetro y que el resultado sea […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *