Tegnap egy remek Twitter szerű linkelést kaptatok tőlünk. Folytatva a vonalat ma egy olyan PHP funkciót mutatunkbe amit egy megadott dátumból kiírja, hogy mennyi idő telt el azóta.
A twitteren ezt így láthatjátok:
Fontos, hogy a függvény bemenetét az alábbi minta szerint kell megadni: Y-m-d H:i
Kód
function szepido($date)
{
if(empty($date)) {
return "Nincs idő vagy helytelen";
}
$periods = array("másodperce", "perce", "órája", "napja", "hete", "hónapja", "éve", "decade");
$lengths = array("60","60","24","7","4.35","12","10");
$now = time();
$unix_date = strtotime($date);
// dátum helyessége
if(empty($unix_date)) {
return "Nincs idő vagy helytelen";
}
if($now > $unix_date) {
$difference = $now - $unix_date;
$tense = "";
} else {
$difference = $unix_date - $now;
$tense = "most";
}
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
$difference = round($difference);
return "$difference $periods[$j] {$tense}";
}
Használat
Ha UNIX időt használunk:$datum="1239732267"; //2009 április 14. 20:04
print szepido(date('Y-m-d H:i',$datum));
Ha a minta szerinti időt:
$datum="2009-08-22 09:00";
print szepido($datum);
Kimenet
UNIX idő esetén
6 hónapja
Minta szerinti idő esetén
2 hónapja