基于文件修改时间的php倒计时

基于文件修改时间的php倒计时,php,timer,Php,Timer,我的服务器上有一个文件,每10分钟就会被一个名为AgentReport.html的更新文件覆盖一次 我有一个网页,它使用iframe显示AgentReport.html,元刷新设置为60秒 我正在尝试创建一个基本的php倒计时,以显示距离下一次更新的时间,使用filemtime获取AgentReport.html上次修改日期的分钟数 以下是我到目前为止的情况: <?php $nextUpdate = date ("i", filemtime("AgentReport.html")) +

我的服务器上有一个文件,每10分钟就会被一个名为AgentReport.html的更新文件覆盖一次

我有一个网页,它使用iframe显示AgentReport.html,元刷新设置为60秒

我正在尝试创建一个基本的php倒计时,以显示距离下一次更新的时间,使用filemtime获取AgentReport.html上次修改日期的分钟数

以下是我到目前为止的情况:

<?php

$nextUpdate = date ("i", filemtime("AgentReport.html")) + 10;
$currtime = date ("i");
$remaining = ($nextUpdate - $currtime - 1);
if ($remaining >= 60) {
    $remaining = ($remaining - 60) . "minutes";
}
else if ($remaining <= 1) {
    $remaining = "a minute";
}
else $remaining = $remaining . " minutes";
echo "Next update in about " . $remaining;

?>

这是草率的,但几乎有效。。但我感到困惑。我很难在一个小时内导航(报告似乎在10:52到达服务器)并处理最后一分钟,以便正确显示

有什么想法吗?


<?php
$nextUpdate = filemtime("AgentReport.html") + 10*60;
$currTime   = time();
$min        = (int)(($nextUpdate-$currTime)/60);
echo 'Next update in about '.($min <= 1 ? 'a minute' : $min.' minutes');
?>

当遇到这些问题时,它在做什么?假设文件在10:52更新。11时01分,剩余时间为61分钟。然后当它下降到$leveling=1时,它会说剩下1分钟。。。但是当$remaining=0(可能还剩59秒)时,从技术上讲,我还有大约一分钟的时间……您可以添加一个+1来覆盖这一点。您已经有一个if语句需要注意:我知道这可能会创建一些过于草率的代码,因此按照Jurgis建议的方式执行可能会更干净Hanks Jurgis!!我会试试看,然后再给你回复!这绝对是一种更干净的方法。但当文件在10:55更新,当前时间是11:02时,它会说还有3分钟还是63分钟?此外,在循环的最后两分钟,它会显示“大约一分钟”。。而不是最后一分钟。它会说大约一分钟两分钟。但这是正确的,因为它将不到2分钟。@J--:如果你想让它说大约一分钟,而实际上不到一分钟,只需在
$min
上加一分钟即可(例如
$min=$min+1;
)。这是我可能会推荐的,因为从一开始你就要失去一分钟的时间。它可以是任意一种方式,因为
about
值可以是
+
-
实际值,这实际上只是个人偏好。尽管如此,这里还是有很好的解决方案。是的,这就是我的想法。由于页面每分钟刷新一次,而与更新时间无关,因此我希望它在第一次新报告刷新时显示10分钟,并在每次刷新时下降一分钟。所以我试着增加11分钟,而不是10分钟。所以剩下的时间从10分钟开始。那就换个座位吧