Расчет частоты - PullRequest
       4

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

0 голосов
/ 28 июня 2018

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

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

$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 дней.

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

0 голосов
/ 28 июня 2018

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

  • частота = 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 дней)
...