Jump to content

[SOLVED] Dynamic Time Display


Lambneck

Recommended Posts

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.