У меня есть функция в PHP, которая получает среднее время дат эпохи в массиве
Intervals - Array
(
[0] => 86340
[1] => 86400
[2] => 86400
[3] => 86400
[4] => 86400
[5] => 172800
[6] => 86400
)
Я работаю в среднем, добавив все элементы в массиве и разделив на количество элементов в массиве. Моя проблема в том, что иногда она возвращает время эпохи, как — «98734,285714286» скорее, чем ‘98734’
Позже я добавляю это среднее время к дате эпохи, например:
1453348800 + 98734.285714286
Но так как дата эпохи имеет десятичное место, она, кажется, добавляет первые 4 числа после десятичного знака к результату эпохи, например: ‘1453354114.2857’ и когда оно преобразуется обратно в удобочитаемую дату, оно возвращается — 2903-01-22 05:28:34
Обратите внимание, что эти даты являются примерами.
Моя проблема в том, что иногда она возвращает время эпохи, например, «98734.285714286», а не «98734».
$average = intval($average);
Никаких объяснений не требуется 🙂
Они целые числа, поэтому относитесь к ним как к целым числам.
$intervals = ['86340', '85340', '1453354114.2857'];
array_walk($intervals, 'intval'); // now they are all integer
И тогда делайте с ним, что хотите, например, взяв в среднем:
$avg = intval(array_sum($intervals)/count(intervals));