2011-12-31 76 views
0

我有以下代碼:如何計算過去24小時的訪客?

$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文件,但我卡住了。

在此先感謝。

+0

重複http://stackoverflow.com/questions/8670262/wrong-in-date-comparison – liquorvicar 2011-12-31 10:24:18

回答

1

我可以看到2個問題:1 你比較當前時間的存儲時間,他說,如果它的日期不是24小時內,將濾波器陣列項目..

我認爲你應該使用今天$ = strtotime(「 - 1 day」); 和名稱昨天而不是今天..

其次和錯誤的原因是您在爲文件數據爆炸,它會給你「」,即空在array..and這就是最後一個元素,爲什麼的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 
     } 
} 
+0

謝謝,我解決了這個問題 – 2011-12-31 10:08:24

相關問題