我正在尝试创建一个cron作业,它将为我提供目录中已在最后一天创建或修改的文件列表。对于我的生活,我无法看到下面的代码片段有什么问题。它什么都不产生,我知道我在过去24小时内至少更新了一个文件。
<?php
$dir = opendir(".");
clearstatcache();
while(false != ($file = readdir($dir)))
{
if ( substr($file,-4) == ".php" )
{
//echo $file;
//echo "<br>";
$yesdate = date('d.m.Y',strtotime("-1 days"));
if (date("d.m.Y", filemtime($file))==$yesdate)
{
echo $file;
}
}
}
?>
答案 0 :(得分:2)
您只能找到昨天更新的文件。如果您想要过去24小时,可以从当前时间减去filemtime(..)。您将在几秒钟内找到差异:
$now = time(); //you should put this outside of the loop
if ($now - filemtime($file) < 24 * 60 * 60)
{
//do something
}
答案 1 :(得分:2)
如果您希望在过去24小时内编辑文件而不是>=
而不是==
,请比较时间戳而不是日期,例如:
$dir = opendir(".");
clearstatcache();
$yesdate = strtotime("-1 days");
while(false != ($file = readdir($dir)))
{
if ( substr($file,-4) == ".php" )
{
if (filemtime($file) >= $yesdate)
{
echo $file;
}
}
}