我让我们说一个$value = 5;
,而valnue意味着5分钟,我有一个文件保存在服务器上并被修改了很多名为check.txt
我想要一个代码来计算if timenow - 文件的时间修改< = 0在H:i:s从5分钟的主$值继续,否则回声请等待从现在开始的时间分钟 - 文件时间修改的主要值为5分钟= $ timeleft in 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";
}
提前致谢
答案 0 :(得分: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}";
}
答案 1 :(得分:1)
我建议使用time()而不是date()。 这样,您可以从当前时间()函数中减去文件时间,并查看它是否大于5分钟* 60秒。
祝你好运!