【问题标题】:php Countdown timer based on file modified time基于文件修改时间的php倒数计时器
【发布时间】:2015-05-09 19:36:45
【问题描述】:

我的服务器上有一个文件,该文件每 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 到达服务器)并处理最后一分钟以便正确显示。

有什么想法吗?

【问题讨论】:

  • 遇到问题时它在做什么?
  • 假设文件在 10:52 更新。 11:01,剩余时间为61分钟。然后当它下降到 $remaining = 1 的位置时,它会说还剩 1 分钟......但是当 $remaining = 0(可能还剩 59 秒)时,从技术上讲,我还有大约一分钟的时间......
  • 你可以添加一个 +1 来覆盖它。
  • 你已经有一个
  • 注意:我知道这可能会创建一些过于草率的代码,因此按照 Jurgis 下面建议的方式进行操作可能会更简洁

标签: php timer


【解决方案1】:
<?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:55 更新并且当前时间是 11:02 时,它会说还剩 3 分钟还是还剩 63 分钟?此外,它会在周期的最后两分钟说“大约一分钟”......而不是最后一分钟。
  • 它会说大约一分钟两分钟。但这是正确的,因为它不到 2 分钟。
  • @J--: 如果你想让它说about a minute 而实际上只有不到一分钟,只需给$min 添加一分钟(例如$min = $min + 1; )。这是我可能会推荐的,因为看起来你从一开始就会失去一分钟的时间。它可以是任何一种方式,因为about 的值可以是+- 的实际值,这实际上只是个人喜好。尽管如此,这里还是很好的解决方案。
  • 是的,这就是我的想法。由于无论更新时间如何,页面都会每分钟刷新一次,我希望它在第一次新报告刷新时显示 10 分钟,并且每次刷新时下降一分钟。所以我最初尝试只添加 11 分钟而不是 10 分钟。所以剩余的分钟数从 10 分钟开始。然后只需将
猜你喜欢
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2011-06-30
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多