【发布时间】:2012-08-03 08:24:58
【问题描述】:
我有以下代码来查看分配的时间是否已过。 对于我的演示,它应该全部评估为 false,并且什么都不会发生。 曾经发生的事情是它解析为真,即使我将它与 >=
进行比较为什么会出现这种奇怪的行为?
$data = '[{"ip":"80.61.150.173","endtime":1343988643},{"ip":"80.61.150.173","endtime":1343988649},{"ip":"80.61.150.173","endtime":1343988650},{"ip":"80.61.150.173","endtime":1343988664},{"ip":"80.61.150.173","endtime":1343988682},{"ip":"80.61.150.173","endtime":1343988723}]';
$json = json_decode($data,true);
foreach($json as $key => $obj)
{
var_dump($obj);
echo "<BR>";
var_dump(time());
echo "<BR>";
if($obj['endtime'] <= time());
{
echo "<BR>bliep<P>";
}
}
这段代码的计算结果如下:
array(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988643) }
整数(1343981967)bliep 数组(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988649) }
整数(1343981967)哔
array(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988650) }
整数(1343981967)哔
array(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988664) }
整数(1343981967)哔
array(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988682) }
整数(1343981967)哔
array(2) { ["ip"]=> 字符串(13) "80.61.150.173" ["endtime"]=> 整数(1343988723) }
整数(1343981967)哔
如您所见,那里有所有不应该存在的哔哔声。 时间戳是整数,当前时间小于保存时间。 它应该很容易比较,但它总是评估为真,而现在
这是怎么回事?
这不是我的服务器,因为此代码在 http://writecodeonline.com/php/ 上的计算结果也为 true
【问题讨论】:
-
尝试回显 $obj['endtime'] - time() 而不是 bliep 以查看错误在哪里。
标签: php if-statement timestamp compare