note 18412 deleted from ref.datetime by victor
| From: | victor@php.net | Date: | Mon, 09 Dec 2002 18:52:34 +0000 |
| Subject: | note 18412 deleted from ref.datetime by victor | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-40616@lists.php.net to get a copy of this message | ||
I probably didn't need to write this but it was fun anyway. This function will work out the
difference between two timestamps and process the number of seconds into a text string broken down
into years,weeks,minutes and seconds. Years aren't accurate since it doesn't take into
account leap years.
function get_time_diff($start,$end){ // Calculates difference in seconds and returns text string.
$diff = ($end-$start);
if($diff<60){
$sec = $diff;
}
else{
if($diff<3600){
$min = floor($diff/60);
$sec = $diff-(60*$min);
}
else{
if($diff<86400){
$hour = floor($diff/3600);
$min = floor(($diff-($hour*3600))/60);
$sec = (($diff-($hour*3600)-(60*$min)));
}
else{
if($diff<604800){
$day = floor($diff/86400);
$hour = floor(($diff-($day*86400))/3600);
$min = floor(($diff-($day*86400)-($hour*3600))/60);
$sec = (($diff-($day*86400)-($hour*3600)-(60*$min)));
}
else{
if($diff<31536000){
$week = floor($diff/604800);
$day = floor(($diff-($week*604800))/86400);
$hour = floor(($diff-($week*604800)-($day*86400))/3600);
$min = floor(($diff-($week*604800)-($day*86400)-($hour*3600))/60);
$sec = (($diff-($week*604800)-($day*86400)-($hour*3600)-(60*$min)));
}
else{
$year = floor($diff/31536000);
$week = floor(($diff-($year*31536000))/604800);
$day = floor(($diff-($year*31536000)-($week*604800))/86400);
$hour = floor(($diff-($year*31536000)-($week*604800)-($day*86400))/3600);
$min = floor(($diff-($year*31536000)-
($week*604800)-($day*86400)-($hour*3600))/60);
$sec = (($diff-($year*31536000)
-($week*604800)-($day*86400)-($hour*3600)
-(60*$min)));
}
}
}
}
}
if($sec != ''){
if($sec == 1){
$final = $sec . ' second';
}
else{
$final = $sec . ' seconds';
}
}
if($min != ''){
if($min == 1){
$final = $min . ' minute ' . $final;
}
else{
$final = $min . ' minutes ' . $final;
}
}
if($hour != ''){
if($hour == 1){
$final = $hour . ' hour ' . $final;
}
else{
$final = $hour . ' hours ' . $final;
}
}
if($day != ''){
if($day == 1){
$final = $day . ' day ' . $final;
}
else{
$final = $day . ' days ' . $final;
}
}
if($week != ''){
if($week == 1){
$final = $week . ' week ' . $final;
}
else{
$final = $week . ' weeks ' . $final;
}
}
if($year != ''){
if($year == 1){
$final = $year . ' year ' . $final;
}
else{
$final = $year . ' years ' . $final;
}
}
return $final;
}