Lambneck Posted June 2, 2009 Share Posted June 2, 2009 This script displays time in "[time] ago" format. But I would like to tweak it a bit so that for hours it displays "about [time] ago" and then anything older than 24 hours to display in a format like this: "2:30 PM Jun 1st". Can anyone help? <?php function nicetime($date) { if(empty($date)) { return "No date provided"; } $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); $lengths = array("60","60","24","7","4.35","12","10"); $now = time()+3600; $unix_date = strtotime($date); // check validity of date if(empty($unix_date)) { return "Bad date"; } // is it future date or past date if($now > $unix_date) { $difference = $now - $unix_date; $tense = "ago"; } else { $difference = $unix_date - $now; $tense = "from now"; } for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { $difference /= $lengths[$j]; } $difference = round($difference); if($difference != 1) { $periods[$j].= "s"; } return "$difference $periods[$j] {$tense}"; } $date = $row['date']; $timeago = nicetime($date); // 2 days ago echo $timeago; Link to comment https://forums.phpfreaks.com/topic/160597-solved-dynamic-time-display/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.