У меня есть две метки времени и попытка группировать продолжительность в равные интервалы на время.Поиск равных интервалов из 2 временных меток
2013-08-02 00:00:12 to 2013-08-02 00:58:50
Например, интервал 15 секунд должен дать мне следующее:
2013-08-02 00:00:00
2013-08-02 00:00:15
2013-08-02 00:00:30
2013-08-02 00:00:45
2013-08-02 00:01:00
....// and so on...
2013-08-02 00:58:45
В настоящее время я использую эту функцию, что я создал, он прекрасно работает, однако она крайне медленно:
function time_active_calculator($from_date, $to_date, $interval) {
$unix_from_date = strtotime($from_date);
$unix_to_date = strtotime($to_date);
$start_time_minute = floor($unix_from_date/60) * 60;
$end_time_minute = ceil($unix_to_date/60) * 60;
$valid_times = array();
while ($start_time_minute <= $end_time_minute) {
if (($start_time_minute <= $unix_to_date)) {
if ($start_time_minute + $interval > $unix_from_date) {
$valid_times[] = $start_time_minute;
}
}
$start_time_minute = $start_time_minute + $interval;
}
return $valid_times; }
Идея состоит в том, чтобы получить интервалы только для начала и конца и использовать range с интервалом в $, являющимся шагом. Мне нужно найти только значения правильных интервалов для времени начала и конца метки времени т.е:
2013-08-02 00:00:00 and 2013-08-02 00:58:45
, а затем использовать функцию диапазона на нем.
Это всего лишь добавляет 15 секунд к любой отметке времени. Я хочу, чтобы минута разделилась на 4 из 15 секунд каждый, и любая временная метка должна дать предыдущий интервал, например: 00:00:17 должен вернуться 00:00:15 –
@JCrow: см. Мой пост. –