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; Quote Link to comment https://forums.phpfreaks.com/topic/160597-solved-dynamic-time-display/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.