计算频率

时间:2018-06-28 14:12:11

标签: php algorithm calculation

我正在创建一个论坛,并希望计算每天新帖子的出现频率。因此,每个帖子都有时间戳:

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

我该怎么做才能确定每天提交帖子的频率。最终输出示例:

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

2 个答案:

答案 0 :(得分: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天发表一篇文章。

是您要找的东西吗?

答案 1 :(得分:1)

假设您想要一般频率:

  • 频率= 1 /周期
  • 期间=两个帖子之间的平均时间=最旧和最新帖子之间的时间/帖子数量-1
  • 最旧和最新帖子之间的时间=最新帖子-最旧帖子

在您的示例中:

$post_1 = 1526083200;
$post_2 = 1524083200;
$post_3 = 1523083200;
$post_4 = 1522083200;
  • 最早和最新帖子之间的时间= 1526083200-1522083200 = 4000000秒= 46,2962963天
  • 期间= 46,2962963 / 3 = 15.4320987667天(两个帖子之间平均有15天)
  • 频率= 1 / 15.4320987667 = 0.06479999999(平均每0.0648天有一个帖子)