创建一个简单的时间戳并测试它是否已过期

时间:2012-06-18 16:40:02

标签: php

我正在尝试学习如何创建和测试时间戳的到期时间。我设置了一个简单的例子,试图测试已经过期的时间戳,但它似乎没有正常工作,我想知道是否有人可以帮我弄清楚为什么它不会回应'有效'和'过期'在适当的时候?

<?php

echo'
<html>
<head>
</head>
<body>';

//set static current time
$timestamp = 1340037073;

if($timestamp <= strtotime("+10 minutes", $timestamp)){
    echo "Valid";
}else{
    echo "Expired";
}


echo'
</body>
</html>';




?>

3 个答案:

答案 0 :(得分:3)

使用time()函数获取当前时间,因此$timestamp应包含从外部源获取的时间,如数据库或其他任何内容,以检查当前时间,以查看它是否已过期:

//test timestamp
$timestamp = 1340037073;

//check if it has expired (600 = 60*10 seconds = 10 minutes)
if ((time() - $timestamp) < 600)
{
  echo 'valid';
}
else
{
  echo 'expired';
}

希望它适合你:)

答案 1 :(得分:1)

你拥有的东西永远有效。考虑一下:

$i = 0;

if ($i <= ($i+1)) {
  // always truthy, because 1 is greater than 0
}

所以你应该切换它:

$timestamp = 1340037073;

if(strtotime("+10 minutes", $timestamp) <= $timestamp){
    echo "Valid";
} else {
    echo "Expired";
}

另外:为什么不在你使用DateTime时开始使用它?

答案 2 :(得分:0)

更容易:(600 = 10分钟,秒)

if (($timestamp+600) <= time()) {
    //expired
}