dimarts, 21 d’agost del 2007

Sumar y restar fechas con PHP (Sumar i restar dates amb PHP)

Para realizar operaciones con variables de tipo fecha con PHP necesitamos la clase Fecha, que contiene tres funciones. La función Fecha es el constructor del objeto en si. La SumaTiempo la utilizaremos para hacer las sumas y las restas, y la getFecha nos devolverá el valor del objeto.

Debajo de la clase podemos ver tres lineas de codigo que ilustran la forma en que se utilizan las diferentes funciones.


Per fer operacions amb variables tipus data amb PHP necessitem la classe Fecha, la qual consta de tres funcions. La funció Fecha és el constructor de l'objecte en si. La SumaTiempo la farem servir per fer les sumes i les restes, i la getFecha ens retornarà el valor de l'objecte.

A sota de la classe podem veure tres línees de codi que il·lustren la forma com es criden les diferents funcions.



Código (Codi)
class Fecha {
    var $fecha;

    function Fecha($a = 0, $m = 0, $d = 0) {
        If ($a==0) $a = Date("Y");
        If ($m==0) $m = Date("m");
        if ($d==0) $d = Date("d");
        $this -> fecha = Date("Y-m-d", mktime(0,0,0,$m,$d,$a));
    }

    function SumaTiempo($a = 0, $m = 0, $d = 0) {
        $array_date = explode("-", $this->fecha);
        $this->fecha = Date("Y-m-d", mktime(0, 0, 0, $array_date[1] + $m, $array_date[2] + $d, $array_date[0] + $a));
    }

    function getFecha() { return $this->fecha; }
    }

    $fecha_tope = new Fecha();
    $fecha_tope -> SumaTiempo(3, 2, -14);
    $fecha_max = $fecha_tope -> getFecha();
}



La funció SumaTiempo pren com a paràmetres els anys, mesos i dies que volem sumar o restar. Podeu veure com per restar, lo únic que s'ha de fer és passar el paràmetre amb símbol negatiu.


La función SumaTiempo toma como parámetros los años, meses y dias que queremos sumar o restar. Podeis ver como para restar, lo único que hay que hacer es pasar el parámetro con signo negativo.


Important! La funció només pot sumar valors inferiors a 31 anys.

Importante! La función solo puede sumar valores inferiores a 31 años.


3 comentaris:

Wladimir Avila ha dit...

para sumar mas de 31 años no funciona

Sergi Puigdomènech ha dit...

Si, esta función tiene la limitación de no poder sumar mas de 31 años.

Bingo Game ha dit...

It is remarkable, it is very valuable phrase