Расчет частоты

Я творческий форум и хочу рассчитать частоту новых сообщений в день. Итак, у каждого сообщения есть метки времени:

$post_1 = 1526083200;
$post_2 = 1524083200;
$post_3 = 1523083200;
$post_4 = 1522083200;

Какой расчет мне сделать, чтобы узнать, как часто отправляются сообщения в день. Пример окончательного вывода:

echo 'Every '. $frequency .' day(s)';

3

Решение

Вы можете попробовать что-то вроде этого:

$post_1 = 1526083200;
$post_2 = 1524083200;
$post_3 = 1523083200;
$post_4 = 1522083200;

// I add all the value in an array then sort the array to get the min and max value
$date_array = [$post_1, $post_2, $post_3, $post_4];
sort($date_array);

// Now I can select the min date and the max date
$min_date = $date_array[0];
$max_date = $date_array[count($date_array) - 1];

// I calculate the diff to get the number of day during this period
$datediff = $max_date - $min_date;

// I divide this value with the number or article post during this period
$frequency = $datediff / count($date_array);

// Now I transform this value in number of day
$frequency = round($frequency / (60 * 60 * 24));

На вашем примере это то, что вы получили:

  • Количество статей: 4
  • Минимальная дата: 2018-03-26
  • Макс дата: 2018-05-12
  • Номер дня периода: 46
  • Частота: 12

Это звучит хорошо для меня с той ценностью, одна статья каждые 12 дней.

Это то, что вы ищете?

3

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

при условии, что вы хотите общую частоту:

  • частота = 1 / период
  • период = среднее время между двумя сообщениями = время между самым старым и самым новым сообщением / количество сообщений — 1
  • время между самым старым и самым новым постом = самый новый пост — самый старый пост

В вашем примере:

$post_1 = 1526083200;
$post_2 = 1524083200;
$post_3 = 1523083200;
$post_4 = 1522083200;
  • время между самыми старыми и новейшими сообщениями = 1526083200 — 1522083200 = 4000000 секунд = 46,2962963 дней
  • period = 46,2962963 / 3 = 15,4320987667 дней (между двумя сообщениями в среднем 15 дней)
  • частота = 1 / 15.4320987667 = 0.06479999999 (в среднем по одному сообщению каждые 0,0648 дней)
1

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