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

Reinventando la Rueda o Porqué Desrrollé RSPhp

admin

July 2, 2017

PHP

No Comment

¿Por que desarrollar un web framework para Php? Si ya existe Laravel, Symphony, Code Igniter. “No reinventes la rueda”, es una frase que escucharás muy seguido si te propones escribir un framework desde cero u otro proyecto similar. Estas personas quieren lo mejor para ti, no lo dudes, pero no siempre tienen la razón. Si […]

Read More

RSPhp Web Framework

admin

July 2, 2017

PHP

No Comment

He desarrollado mi propio framework para PHP, lo he llamado RSPhp, Real Simple Php. Mi objetivo es que sea lo más simple posible, sus peculiaridades son que no usa un template engine, tiene el mínimo de dependencias posibles y esta enfocada a lograr lo que nunca he visto: Eliminar el código spaguetti en desarrollos php. […]

Read More

Leave a Reply

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

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter