PHP: calcular el temps que ha passat entre dues dates

Es fan servir les funcions mktime(), str_pad() i floor() per a calcular-ho. En l’exemple es calcula el temps passat entre el moment en què es carrega la pàgina i les 01:02:03 del 04/05/2006:

<?php
  $timestamp1 = mktime();
  $timestamp2 = mktime(1, 2, 3, 5, 4, 2006);
  // Data d'exemple: 01:02:03 del 04-05-2006
  $diferencia = $timestamp1 - $timestamp2;
  echo diferencia_dates($diferencia);

function diferencia_dates($diferencia){
 $segons = $diferencia % 60;
 $segons = str_pad($segons, 2, "0", STR_PAD_LEFT);
 $diferencia = floor($diferencia / 60);
 $minuts = $diferencia % 60;
 $minuts = str_pad($minuts, 2, "0", STR_PAD_LEFT);
 $diferencia = floor($diferencia / 60);
 $hores = $diferencia% 24;
 $hores = str_pad($hores, 2, "0", STR_PAD_LEFT);
 $diferencia = floor($diferencia / 24);
 $dies = $diferencia%365;
 $dies = str_pad($dies, 2, "0", STR_PAD_LEFT);
 $diferencia = floor($diferencia / 365);
 $anys = $diferencia;
 $cadena = "Han passat ".$anys." anys, ".$dies." dies, ".$hores." hores, ".$minuts." minuts i ".$segons." segons des de les 01:02:03 del 04-05-2006";
 return $cadena;
}

?>

Vaig trobar aquest codi fa temps pe algun bloc, no recordo on… L’he traduït i l’he adaptat.

Aquesta entrada es va publicar en Programació i classificat en , . Bookmark el permalink. Publicar un comentari o deixar un trackback: URL del Trackback.

Publicar un comentari

El teu correu mai serà compartit o publicat. Els camps obligatoris estàn marcats *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>