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