<?php
//$data_da_db intero da date tipo timestamp, quindi $dat_da_db espresso in secondi
function diff_data($data_da_db){
$adesso=time();//legge la data nel momento di apertura del post
$differenza=$adesso-$data_da_db;//in secondi
//trasformo in ore arrotondando
$giorni=floor($differenza/(24*60*60));//giorni possono essere >=1
if($giorni >= 1){//sono passate più di 24 ore
$mese=array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
//se vuoi la data che proviene dal db usa le due righe qui sotto
$mese_int=date(n,$data_da_db)-1;//serve per l'array dei mesi in italiano
return "scritto il ".date("d", $data_da_db)." ".$mese[$mese_int]." ".date("Y", $data_da_db)." alle ore ".date("H:i", $data_da_db);
//altrimenti o le commenti o cancelli e decommenti le seguenti
//$mese_int=date(n,$adesso)-1;
//return "scritto il ".date("d", $adesso)." ".$mese[$mese_int]." ".date("Y", $adesso)." alle ore ".date("H:i", $adesso);
}else{//le ore sono meno di 24
$ore=floor($differenza/(60*60));
if($ore >= 1){//le ore sono piu di una ma meno di 24
$testo=" ore fa'";
if($ore ==1){$testo=" ora fa'";}
return "scritto ".$ore.$testo;//stampa ore fa'
}else{//le ore sono meno di 1
$minuti=floor($differenza/60);
if ($minuti >= 1){//i minuti sono piu di uno
$testo=" minuti fa'";
if($minuti==1){$testo=" minuto fa'";}
return "scritto ".$minuti.$testo;//stampa minuti fa'
}else{//sono meno di un minuto
$testo=" secondi fa'";
$secondi=round($differenza);//anche se non servirebbe
if($secondi==1){$testo=" secondo fa'";}
return "scritto ".$secondi.$testo;//stampa secondi fa'
}//fine if minuti
}//fine if ore
}//fine if giorni
}//fine function
/*
prova di funzionamento
da sostituire con quello che serve, estrazione della data dal db
*/
//
$oggi=time();//solo per valutare il tempo per prove
// scritto 5 gg 4 ore 37 min e 5 secondi fa'
$scritto=$oggi-5*(24*60*60)-4*(60*60)-37*60-5;//riga GIORNI
// scritto 4 ore 37 min e 5 secondi fa'
//$scritto=$oggi-4*(60*60)-37*60-5;//riga ORE
// scritto 37 min e 5 secondi fa'
//$scritto=$oggi-37*60-5;//riga MINUTI
// scritto 5 secondi fa'
//$scritto=$oggi-5;//riga SECONDI
echo "oggi è il ". date("d F Y H:i:s", $oggi)."<br>";
echo "il post era stato scritto il ". date("d F Y H:i:s", $scritto)."<br>";
/*
FUNZIONE PER SCRIVERE IL TEMPO PASSATO
se dif < 60 sec stampa (es.): scritto 5" fa'
se dif > 1 e < 60 min: scritto 25' fa'
se dif > 1 e < 24 ore: scritto 1 ora fa'
se diff > 24 ore stampa la data nel formato: scritto il gg mese anno alle ore H:MIN
*/
echo "<br>".diff_data($scritto)."<br>";
?>