2015-05-15 42 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