Version: 2
Type: Function
Category: Calendars/Dates
License: GNU General Public License
Description: /* TIMEDIFFERENCE SCRIPT BY FRAGGALOT @ ATCC.NO, COPYRIGHT 2002
* GET HOW LONG AGO SINCE SOME TIMESTAMP
* syntax;
* timediff(timestamp[,how big[,special format]])
* timestamp: format of time()
* how big: ex. 2: 3hours 4minutes.
* another ex. 4: 1day 3hours 4minutes 34seconds
* special format: if set to true the timestamp var comes in hh/minmin/ss/mm/dd/yyyy format.
* */
<? // timediff(timestamp[,how big]) /** * @param date UNIX_TIMESTAMP * @param quantity INT, number of atts->out * @return STR, agostr->out **/ function timediff($date,$quantity=2) { //get time difference $diff = time() - $date; //getting how long ago its all been $y_ago = date("Y", $diff) -1970; $mo_ago = date("m", $diff) -1; $d_ago = date("d", $diff) -1; $h_ago = date("H", $diff); $mi_ago = date("i", $diff); $s_ago = date("s", $diff); //create w_ago from d_ago if($d_ago >= 7) { $w_ago = floor($d_ago/7); $d_ago -= ($w_ago*7); } else { $w_ago = 0; } //create array containing ago_vars $foo_array = array ("y" => $y_ago, "mo" => $mo_ago, "w" => $w_ago, "d" => $d_ago, "h" => $h_ago, "m" => $mi_ago, "s" => $s_ago); $i = 0; foreach($foo_array as $key=>$value) { $value = ereg_replace("0+","0",$value); if($value != 0 && $i < $quantity) { $str .= (isset($str)) ? ", $key:$value" : "$key:$value"; $i++; } } //in $str there are now 1 or more ago_vars $str = (strpos($str,",") !== false) ? explode(",", $str) : array($str); $moo = array(); foreach($str as $string) { preg_match("/(.*):(.*)$/", $string,$match); $string2 = trim($match[2])." "; $string2 = preg_replace("/^0(.+)/","1",$string2); $keyname = trim($match[1]); $string2 .= $keyname; array_push($moo, str_replace(" ","",$string2)); } $final = ($moo[1] !== false) ? implode("",$moo) : $final; return $final; } //example stamp for testing purposes. $stamp = 1066065981; print '1: '.timediff($stamp,1).'<br />'; print '2: '.timediff($stamp).'<br />'; print '3: '.timediff($stamp,3).'<br />'; print '4: '.timediff($stamp,4).'<br />'; print '5: '.timediff($stamp,5).'<br />'; print '6: '.timediff($stamp,6).'<br />'; print '7: '.timediff($stamp,7).'<br />'; ?>