2015-05-15 62 views
1

我想緩存文件5分鐘,但filemtime有不同的一天總是返回false,這裏的代碼PHP filemtime緩存不同天的問題

<?php 
error_reporting(E_ALL); 
date_default_timezone_set("Asia/Jakarta"); 
$cache_file = 'myfile'; 
$cachetime = time() - 5*60; 

if(filemtime($cache_file) > $cachetime) { 
    echo "Cache Expired"; 
} 
else{ 
    echo "File Mod: ".filemtime($cache_file)." >>> ".date("F d Y H:i:s", filemtime($cache_file))."<br>"; 
    echo "Time Now: ".$cachetime." >>> ".date("F d Y H:i:s", $cachetime)."<br>"; 
} 
?> 

和輸出

File Mod: 1431696549 >>> May 15 2015 20:29:09 
Time Now: 1431716474 >>> May 16 2015 02:01:14 

感謝您幫幫我。

+1

小於,不大於。如果緩存在5分鐘前被修改,那麼它現在會比現在少... – Devon

回答

1

看起來你的邏輯是關閉的。您希望創建給定修改時間的時間戳並添加TTL,並將其與當前時間進行比較。

$cachetime = filemtime($cache_file) + 5*60; 

if($cachetime > time()) { 
    echo "Cache Expired"; 
} 
+0

我還是新的:D謝謝你:D – uingtea