0

我可以说 a$value = 5;并且值表示 5 分钟,并且我在服务器上保存了一个文件并进行了很多修改,称为check.txt我想要一个代码来计算 if timenow - timemodification of file <= 0 in H:i: s 从主 $value 5 分钟开始,然后继续,否则回显请等待从现在开始的分钟数 - 主值 5 分钟的文件时间修改 = $timeleft,格式为 m:s。

我正在测试当前代码,但我一直得到 -1376352747 的值

我知道的代码不好:)是

$filename = 'check.txt';
$time = date("H:i:s");
$time = str_replace("00", "24", $time);
$filemodtime = filemtime($filename);
$timeleft = $time - $filemodtime;
$h = explode(':', $time);
$h = $h[0];
$h = str_replace("00", "24", $h);
$m = explode(':', $time);
$m = $m[1];
$s = explode(':', $time);
$s = $s[2];
$hms = ("$h:$m:$s");

if (count($filemodtime - $time) <= 0) {

echo "you can continue";
}

else {

echo " please wait $timeleft";
}

提前致谢

4

2 回答 2

2

filemtime()函数以秒为单位返回一个 UNIX 时间戳,该time()函数将当前时间作为一个 UNIX 时间戳返回。因此,通过使用该差异,您可以以秒为单位获得文件的年龄。

$age = time() - filemtime($filename);

// if older then 5 minutes (5 * 60 secounds)
if($age > $value*60)
{
    // good
}
else
{
   $time_left = $value * 60 - $age;
   $time_left_secounds = $time_left % 60;
   $time_left_minutes = ($time_left - $time_left_secounds) / 60;
   $formated_time_left = sprintf("%02d:%02d", $time_left_minutes, $time_left_secounds);

   echo "Please wait {$formated_time_left}";
}
于 2013-08-13T00:34:31.880 回答
1

我建议使用 time() 而不是 date()。这样,您可以从当前 time() 函数中减去文件时间,看看它是否大于 5 分钟 * 60 秒。

祝你好运!

于 2013-08-13T00:33:31.803 回答