Many times while displaying time on website we need to do something extra.
This function script can give you time in days/hour/minutes/seconds ago format.
You just need to pass the mysql time to this function. like this:
echo timeago("2013-11-24 18:00:09");
function timeago($timeStr) { $time = strtotime($timeStr); $output = ""; $time_difference = time() - $time; $seconds = $time_difference ; $minutes = round($time_difference / 60 ); $hours = round($time_difference / 3600 ); $days = round($time_difference / 86400 ); $weeks = round($time_difference / 604800 ); $months = round($time_difference / 2419200 ); $years = round($time_difference / 29030400 ); if($seconds <= 60) { // Seconds $output = "$seconds seconds ago"; } else if($minutes <=60) { //Minutes if($minutes==1) { $output = "one minute ago"; } else { $output = "$minutes minutes ago"; } } else if($hours <=24) { //Hours if($hours==1) { $output = "one hour ago"; } else { $output = "$hours hours ago"; } } else if($days <= 7) { //Days if($days==1) { $output = "one day ago"; } else { $output = "$days days ago"; } } else if($weeks <= 4) { //Weeks if($weeks==1) { $output = "one week ago"; } else { $output = "$weeks weeks ago"; } } else if($months <=12) { //Months if($months==1) { $output = "one month ago"; } else { $output = "$months months ago"; } } else { //Years if($years==1) { $output = "one year ago"; } else { $output = "$years years ago"; } } return $output; }
Note: sometimes you may get time error while using this function because of timezone.
In such case you might need to correct time difference by subtracting the difference from time-stamp. You jst need to modify the first line of function by $time = strtotime($timeStr) - 37800;
. where 37800 is time difference in milliseconds.
Leave a Reply