如何用strtotime检查时间是否超过一定时间?

时间:2015-10-17 05:45:45

标签: php unix

我想知道如何检查时间是否超过特定的分钟数,如果时间超过两小时......我尝试了以下但是它似乎无法正常工作..

$postTime处于unix时间。

if(strtotime("+20 minutes") > strtotime($postTime))
{
    echo 'REFRESH EVERY 20 minutes';

} else if(strtotime("+2 hours")> strtotime($postTime))
{
    echo 'refresh every 2 hours';
}

是否有更有效的方法来检查它是否超过特定的分钟/小时数或使用strtotime是最佳方式?

编辑:

If $postTime = 11:30

If(time is now 11:50 compared to $postTime){
 good
} else if(time is now 1:30 compared to $postTime){
good
} else {
do nothing;
}

否则,如果时间超过2小时,则与postTime相比

1 个答案:

答案 0 :(得分:0)

除非$postTime的时间超过20分钟,否则您的第一个语句将始终匹配,您不会检查$postTime是否在20分钟前。

strtotime()不是最有效的方法,最有效的方法就是对整数使用算术。 php的时间函数(包括time和strtotime)返回一个unix时间戳整数。

最简单的方法:

// If $postTime is a unix timestamp integer
if ( $postTime < (time()-(60*20)) ) {
...
}

// The above statement is equivalent to:
if ( $postTime < strtotime("-20 minutes") ) {
...
}

// If $postTime is a string
if ( strtotime($postTime) < (time()-(60*20)) ) {

}