如何计算过去24小时的访客数量?

时间:2011-12-31 08:41:02

标签: php

我有以下代码:

$ips = file_get_contents($_SERVER['DOCUMENT_ROOT']."/visitors.txt");
$arr = explode(",",$ips);

$today =  strtotime(date('Y-m-d H:i:s'));

for ($n = 0, $max = count($arr); $n <= $max; $n++) {
$visArr = explode("#",$arr[$n]);
$visDate = strtotime($visArr[1]); //$visArr[1] = 2011-12-27 14:10:45
  if($visDate < $today){
     unset ($arr[$n]);  //remove array item if its date not within 24 hours 
  }
}

数据存储如下:

xxx.xxx.xxx.xxx#2011-12-27 11:56:24,

xxx.xxx.xxx.xxx#2011-12-28 11:56:24,

我希望过去24小时内有访客。

我不想使用MySQL数据库,我只是想使用txt文件但是我被卡住了。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我可以看到2个问题: 1,您将存储的时间与当前时间进行比较,并表示如果日期不在24小时内,它将过滤数组项目。

我认为你应该使用$ today = strtotime(“ - 1天”); 并命名昨天而不是今天..

其次和错误的原因是你在文件中爆炸数据,这会给你“”,即数组中最后一个元素的null ...这就是为什么strtotime函数给出了该值的错误..

你应该做的是:

if($visArr[1])
{
    $visDate = strtotime($visArr[1]); //$visArr[1] = 2011-12-27 14:10:45
      if($visDate < $today){
         unset ($arr[$n]);  //remove array item if its date not within 24 hours
      }
}