Как получить значения временного интервала Codeigniter

Я пытаюсь получить значения от timespan() функция в коде Igniter. У меня есть одна проблема, как я могу узнать, отображается ли каждый формат даты? Например, в отношении кодов ниже, один временной интервал может быть 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 ***/
}

}

1

Решение

Я решил отказаться от этой логики и использовать 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');
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]