Salve,
ho creato questa funzione
Che molto intuitivamente prendo la data di pubblicazione di un annuncio, sottrae al tempo corrente(funzione time()) la data dell'annuncio e in base al risultato stampa la stringa voluta..codice:<?php $date = osc_item_field("dt_pub_date"); $monthago = 2592000; $twoweekago = 1209600; $weekago = 604800; $yesterday = 172800; $today = 86400; $time = strtotime($date); $time = time()-$time; if ($today > $time) { $time_temp = explode (',', osc_format_date(osc_item_pub_date())); echo "Oggi alle" .$time_temp[1]; } else if ($yesterday > $time) { $time_temp = explode (',', osc_format_date(osc_item_pub_date())); echo "Ieri alle".$time_temp[1];} else if ($weekago > $time) {echo 'Questa settimana';} else if($time > $weekago && $twoweekago>$time) {echo 'Una settimana fa';} else if($time > $twoweekago && $monthago>$time) {echo 'Due settimane fa';} else if($monthago > $time && $monthago > $twoweekago) {echo 'Un mese fa'.$time;} else if($time > $monthago) {echo 'Oltre un mese';} else {echo osc_format_date(osc_item_pub_date());} ?>
Il problema è che sbaglia clamorosamente, come se fosse impostato un fuso orario sbagliato.
Per esempio un annuncio pubblicato ieri mi segna come se fosse di oggi, facendogli stampare il valore di $time effettivamente è minore di 86400 e quindi non viene attivato l'else if di "yesterday"... idee consigli?
Mi va bene anche una versione alternativa per ottenere ciò
Grazie in anticipo^^