【问题标题】:how to calculate time left using string minus another string?如何使用字符串减去另一个字符串计算剩余时间?
【发布时间】:2013-08-13 00:28:47
【问题描述】:

我有一个$value = 5; 和值意味着 5 分钟,我有一个文件保存在服务器上并被修改了很多称为check.txt 我想要一个代码来计算如果 timenow - timemodification file

我正在测试当前代码,但我一直得到 -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";
}

提前致谢

【问题讨论】:

    标签: php time timer


    【解决方案1】:

    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}";
    }
    

    【讨论】:

    • 非常感谢 :) 但你能帮我从 5 开始倒计时吗?它现在充当普通计数器,我想从 $value 开始倒计时,再次感谢
    • 如果时间少于 5 分钟,它的显示时间以秒为单位,如果可能,我将需要它以分钟:秒格式再次感谢
    • 这个$time_left = $value * 60 - $age:应该读作$time_left = $value * 60 - $age;,否则会导致解析错误。冒号应该是$age末尾的分号
    • 非常感谢,由于声誉低,我无法投票 :)
    • @Fred,非常感谢,我注意到当我收到错误时,再次感谢
    【解决方案2】:

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

    祝你好运!

    【讨论】:

    • 忘记了:time 是一个函数,它返回自 1.1.1970 12:00:00 以来经过的秒数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    相关资源
    最近更新 更多