santo cielo... ho invertito il mese con il giorno nell'mktime... mi taglierò un dito per rimediare...

avrai da sistemarti i cicli con altri casi, ma prova così...

Se veramente avessi letto come dici le guide, lo avresti fatto da solo, essendo delle semplici integrazioni da fare... Non so cos'hai provato a cambiare....

function ERTcurage($gm,$gd,$gy,$gh,$gmin,$gs){

[....]

/**
* vars for current date
**/

$cm = date('n');
$cd = date('j');
$cy = date('Y');

$ch = date('H');
$cmin = date('i');
$csec = date('s');


/**
* calculate differences
**/

$m = $cm - $gm;
$d = $cd - $gd;
$y = $cy - $gy;

$h = $ch - $gh;
$min = $cmin - $gmin;
$s = $csec - $gs;


[....]

//fanne uno per ogni variabile, ora, minuti e secondi

switch($h) {

case 0 : $r .= ''; break;
case 1 : $r .= $h.($min == 0 && $s == 0 ? ' hour old' : ' hour'); break;
default : $r .= $h.($min == 0 && $s == 0 ? ' hours old' : ' hours');

}