Php 如何获取timespan值Codeigniter

Php 如何获取timespan值Codeigniter,php,codeigniter,timestamp,unix-timestamp,timespan,Php,Codeigniter,Timestamp,Unix Timestamp,Timespan,我正在尝试从代码点火器中的timespan()函数获取值。我有一个问题,如何知道是否显示了每个日期格式?例如,对于下面的代码,一个时间跨度可能是2个月、6天、13小时、14分钟,其中包含4个元素,而另一个时间跨度可能是2个月、1周、3天、4小时、39分钟,其中包含5个元素。如果更换preg_,那么我不知道是几个月、几个星期还是几天等 那么,我怎样才能知道这是一周还是几天或几小时?因为我想将值转换为周期,比如39min/1440min将是0.0270833天,然后我将计算小时、天、周、月和年,并将

我正在尝试从代码点火器中的
timespan()
函数获取值。我有一个问题,如何知道是否显示了每个日期格式?例如,对于下面的代码,一个时间跨度可能是
2个月、6天、13小时、14分钟
,其中包含4个元素,而另一个时间跨度可能是
2个月、1周、3天、4小时、39分钟
,其中包含5个元素。如果更换
preg_
,那么我不知道是几个月、几个星期还是几天等

那么,我怎样才能知道这是一周还是几天或几小时?因为我想将值转换为周期,比如
39min/1440min
将是0.0270833天,然后我将计算小时、天、周、月和年,并将它们相加

// Hold Cycle Time Conversion

foreach($results as $key => $values)
{
    // Convert mysql timestamp to unix
    $remove = array('-', ':', ' ');
    $hold_timestamp = mysql_to_unix( str_replace( $remove, '', $values['hold_date'] ) );

    // Get timespan
    $hold_timestamp = timespan($hold_timestamp);

    // Explode into arrays
    $timestamp_format = explode(',', $hold_timestamp);

    // Check each array to get value
    foreach($timestamp_format as $ts)
    {
        $separated_stamp = preg_replace('/[^0-9]/', '', $ts);

        /*** Stuck here, incomplete ***/
    }

}

我决定放弃这种逻辑,改用PHP。也得到了一些帮助。不确定这是不是最好的方法,但这是我发现的

// Hold Cycle Time Conversion

foreach($results as $key => $values)
{
    // Declare timestamps
    $last = new DateTime( $values['hold_date'] );
    $now = new DateTime( date( 'Y-m-d h:i:s', time() )) ; 

    // Find difference
    $interval = $last->diff($now);

    // Store in variable to be used for calculation etc
    $years = (int)$interval->format('%Y');
    $months = (int)$interval->format('%m');
    $days = (int)$interval->format('%d');
    $hours = (int)$interval->format('%H');
    $minutes = (int)$interval->format('%i');
}

我决定放弃这种逻辑,改用PHP。也得到了一些帮助。不确定这是不是最好的方法,但这是我发现的

// Hold Cycle Time Conversion

foreach($results as $key => $values)
{
    // Declare timestamps
    $last = new DateTime( $values['hold_date'] );
    $now = new DateTime( date( 'Y-m-d h:i:s', time() )) ; 

    // Find difference
    $interval = $last->diff($now);

    // Store in variable to be used for calculation etc
    $years = (int)$interval->format('%Y');
    $months = (int)$interval->format('%m');
    $days = (int)$interval->format('%d');
    $hours = (int)$interval->format('%H');
    $minutes = (int)$interval->format('%i');
}