Revision: 12587
Updated Code
at March 19, 2009 19:58 by oscarduignan
Updated Code
/** * @var timestamp * @var timestamp * @return string approximate time, for example: about 19 hours */ function getTimeDifferenceInWords($firstTime, $secondTime = '') { // convert to unix timestamps $firstTime = strtotime($firstTime); // if second time was not supplied, use current time $secondTime = ($secondTime) ? strtotime($secondTime) : time(); // find out the difference in seconds $seconds = ($firstTime > $secondTime) ? $firstTime - $secondTime : $secondTime - $firstTime; $minutes = floor($seconds / 60); if ($minutes == 0) { return 'less than a minute'; } if ($minutes == 1) { return 'a minute'; } if ($minutes < 45) { return $minutes . ' minutes'; } $hours = round($minutes / 60); if ($hours <= 1) { return 'about 1 hour'; } if ($hours < 24) { return 'about ' . $hours . ' hours'; } $days = round($hours / 24); if ($days == 1) { return 'about 1 day'; } if ($days < 30) { return 'about ' . $days . ' days'; } $months = round($days / 30); if ($months == 1) { return 'about 1 month'; } if ($months < 12) { return 'about ' . $months . ' months'; } $years = round($months / 12); if ($years == 1) { return 'about 1 year'; } return 'about ' . $years . ' years'; }
Revision: 12586
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 19, 2009 19:50 by oscarduignan
Initial Code
<?php /** * Recreates the behavior of the rails method distance_of_time_in_words * @author Oscar Duignan */ class Blog_View_Helper_GetTimeDifferenceInWords extends Zend_View_Helper_Abstract { /** * @var timestamp * @var timestamp * @return string approximate time, for example: about 19 hours */ function getTimeDifferenceInWords($firstTime, $secondTime = '') { // convert to unix timestamps $firstTime = strtotime($firstTime); // if second time was not supplied, use current time $secondTime = ($secondTime) ? strtotime($secondTime) : time(); // find out the difference in seconds $seconds = ($firstTime > $secondTime) ? $firstTime - $secondTime : $secondTime - $firstTime; $minutes = floor($seconds / 60); if ($minutes == 0) { return 'less than a minute'; } if ($minutes == 1) { return 'a minute'; } if ($minutes < 45) { return $minutes . ' minutes'; } $hours = round($minutes / 60); if ($hours <= 1) { return 'about 1 hour'; } if ($hours < 24) { return 'about ' . $hours . ' hours'; } $days = round($hours / 24); if ($days == 1) { return 'about 1 day'; } if ($days < 30) { return 'about ' . $days . ' days'; } $months = round($days / 30); if ($months == 1) { return 'about 1 month'; } if ($months < 12) { return 'about ' . $months . ' months'; } $years = round($months / 12); if ($years == 1) { return 'about 1 year'; } return 'about ' . $years . ' years'; } }
Initial URL
Initial Description
Simple function to recreate the distance_of_time_in_words function from rails.
Initial Title
GetTimeDifferenceInWords
Initial Tags
Initial Language
PHP