note 109516 modified in function.time by danbrown

From: Date: Mon, 30 Jul 2012 15:54:34 +0000
Subject: note 109516 modified in function.time by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-189500@lists.php.net to get a copy of this message
elapsed time function with precision:&#13;&#10;&#13;&#10;&#60;?php&#13;&#10;&#13;&#10;function elapsed_time($timestamp, $precision = 2) {&#13;&#10; $time = time() - $timestamp;&#13;&#10; $a = array(&#39;decade&#39; =&#62; 315576000, &#39;year&#39; =&#62; 31557600, &#39;month&#39; =&#62; 2629800, &#39;week&#39; =&#62; 604800, &#39;day&#39; =&#62; 86400, &#39;hour&#39; =&#62; 3600, &#39;min&#39; =&#62; 60, &#39;sec&#39; =&#62; 1);&#13;&#10; $i = 0;&#13;&#10; foreach($a as $k =&#62; $v) {&#13;&#10; $$k = floor($time/$v);&#13;&#10; if ($$k) $i++;&#13;&#10; $time = $i &#62;= $precision ? 0 : $time - $$k * $v;&#13;&#10; $s = $$k &#62; 1 ? &#39;s&#39; : &#39;&#39;;&#13;&#10; $$k = $$k ? $$k.&#39; &#39;.$k.$s.&#39; &#39; : &#39;&#39;;&#13;&#10; @$result .= $$k;&#13;&#10; }&#13;&#10; return $result ? $result.&#39;ago&#39; : &#39;1 sec to go&#39;;&#13;&#10;}&#13;&#10;&#13;&#10;echo elapsed_time(&#39;1234567890&#39;).&#39;&#60;br /&#62;&#39;; // 3 years 5 months ago&#13;&#10;echo elapsed_time(&#39;1234567890&#39;, 6); // 3 years 5 months 1 week 2 days 57 mins 4 secs ago&#13;&#10;&#13;&#10;?&#62; --was-- elapsed time function with precision: <?php # http://anggit.com function elapsed_time($timestamp, $precision = 2) { $time = time() - $timestamp; $a = array('decade' => 315576000, 'year' => 31557600, 'month' => 2629800, 'week' => 604800, 'day' => 86400, 'hour' => 3600, 'min' => 60, 'sec' => 1); $i = 0; foreach($a as $k => $v) { $$k = floor($time/$v); if ($$k) $i++; $time = $i >= $precision ? 0 : $time - $$k * $v; $s = $$k > 1 ? 's' : ''; $$k = $$k ? $$k.' '.$k.$s.' ' : ''; @$result .= $$k; } return $result ? $result.'ago' : '1 sec to go'; } echo elapsed_time('1234567890').'<br />'; // 3 years 5 months ago echo elapsed_time('1234567890', 6); // 3 years 5 months 1 week 2 days 57 mins 4 secs ago ?> http://php.net/manual/en/function.time.php

« previous php.notes (#189500) next »