如何获取时间跨度值 Codeigniter
How to get timespan values Codeigniter
我正在尝试从 Code Igniter 中的 timespan()
函数获取值。我有一个问题,如何知道是否显示了每种日期格式?例如,对于下面的代码,一个时间跨度可能是 2 Months, 6 Days, 13 Hours, 14 Minutes
,它有 4 个元素,而另一个时间跨度可能是 2 Months, 1 Week, 3 Days, 4 Hours, 39 Minutes
,它有 5 个元素。如果这样做 preg_replace
那么我将不知道是月、周或日等
那么我如何确定是星期、天还是小时等?因为我想将这些值转换成循环,例如 39mins/1440mins
将是 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 的 Date Time class instead. Got some help from this post。不确定这是否是最好的方法,但这是我发现的。
// 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');
}
我正在尝试从 Code Igniter 中的 timespan()
函数获取值。我有一个问题,如何知道是否显示了每种日期格式?例如,对于下面的代码,一个时间跨度可能是 2 Months, 6 Days, 13 Hours, 14 Minutes
,它有 4 个元素,而另一个时间跨度可能是 2 Months, 1 Week, 3 Days, 4 Hours, 39 Minutes
,它有 5 个元素。如果这样做 preg_replace
那么我将不知道是月、周或日等
那么我如何确定是星期、天还是小时等?因为我想将这些值转换成循环,例如 39mins/1440mins
将是 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 的 Date Time class instead. Got some help from this post。不确定这是否是最好的方法,但这是我发现的。
// 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');
}