non capisco bene la relazione fra i due problemi, ma per dare una soluzione al primo, tempo fa mi sono scritto questa funzione:
Codice PHP:
function timestamp2relative($ts = 0) {
if (!is_numeric($ts)) return $ts;
$rel = mktime() - $ts;
$tempi = array( 'fa', 'secondo', 'secondi', 'minuto', 'minuti', 'ora', 'ore', 'giorno', 'giorni');
if ($rel < 0) return 'In un futuro non molto lontano...';
if ($rel > 0) {
$aRange = array( 60, 60, 24, 7 );
foreach($aRange as $index => $range) {
if ($rel < $range) {
$rel = round($rel);
return $rel . ' ' . $tempi[$index * 2 + ($rel > 1 ? 2:1)] . ' ' . $tempi[0];
}
$rel = $rel / $range;
}
}
return date('F j, Y', $ts);
}
che volendo può essere modificata senza troppi problemi per aggiungere settimane, mesi etc...
edit: per la tua ultima funzione, mi sembra molto improbabile che la pagina venga visitata esattamente a mezzanotte del 15 Agosto, quindi è meglio specificare un intervallo di tempo, non una data precisa