Zend - The PHP Company




Date & Time

Add Code


timespan()  

Type: code fragment
Added by: stephenv
Entered: 24/10/2001
Last modified: 02/11/2000
Rating: **** (3 votes)
Views: 6941
timespan - creates an associative array based on starttime and endtime. Accepts ISO time format (YYYY-MM-DD HH:MM:SS) or pure seconds.


<?php
/*
timespan - creates an associative array based on starttime and endtime

-----
DESCRIPTION

bool timespan( [start] , [end] )

-----
EXAMPLE 1

$time['start'] = 0;
$time['end'] = 77384;
$timespan = timespan($time['start'],$time['end']);
print_r($timespan);

-----
RESULT 1

Array
(
    [week] => 0
    [day] => 0
    [hour] => 21
    [minute] => 29
    [second] => 44
)


-----
EXAMPLE 2

$time['start'] = '2001-10-08 22:19:52';
$time['end'] = '2001-10-24 15:22:13';
$timespan = timespan($time['start'],$time['end']);
print_r($timespan);

-----
RESULT 2

Array
(
    [week] => 2
    [day] => 1
    [hour] => 17
    [minute] => 2
    [second] => 21
)


*/


function timespan($start,$end)
    {
    
// ERROR CATCHIMOJINGA FOR THIS FUNCTION!
    
if((!strtotime($start) || !strtotime($end)) && (!is_numeric($start) || !is_numeric($end)))
        {
        die(
'Wrong datatype for timespan() on Line: '.__LINE__.' in File: '.__FILE__);
        }
    if(!
is_numeric($start)) $start strtotime($start);
    if(!
is_numeric($end)) $end strtotime($end);
    
$span $end-$start;
    
    
// WEEK
    
$return['week'] = 0;
    if(
$span 604800)
        {
        
$return['week'] = intval(intval($span) / 604800);
        
$span intval(intval($span) - ($return['week'] * 604800));
        }

    
// DAY
    
$return['day'] = 0;
    if(
$span 86400)
        {
        
$return['day'] = intval(intval($span) / 86400);
        
$span intval(intval($span) - ($return['day'] * 86400));
        }

    
// HOUR
    
$return['hour'] = 0;
    if(
$span 3600)
        {
        
$return['hour'] = intval(intval($span) / 3600);
        
$span intval(intval($span) - ($return['hour'] * 3600));
        }

    
// MINUTE
    
$return['minute'] = 0;
    if(
$span 60)
        {
        
$return['minute'] = intval(intval($span) / 60);
        
$span intval(intval($span) - ($return['minute'] * 60));
        }

    
// SECOND
    
$return['second'] = 0;
    if(
$span 0)
        {
        
$return['second'] = $span;
        }

    return 
$return;
    }
?>


Usage Example


EXAMPLE 1

$time['start'] = 0;
$time['end'] = 77384;
$timespan = timespan($time['start'],$time['end']);
print_r($timespan);

-----
RESULT 1

Array
(
    [week] => 0
    [day] => 0
    [hour] => 21
    [minute] => 29
    [second] => 44
)


-----
EXAMPLE 2

$time['start'] = '2001-10-08 22:19:52';
$time['end'] = '2001-10-24 15:22:13';
$timespan = timespan($time['start'],$time['end']);
print_r($timespan);

-----
RESULT 2

Array
(
    [week] => 2
    [day] => 1
    [hour] => 17
    [minute] => 2
    [second] => 21
)


Rate This Script





Search



This Category All Categories