我有条件写入比较两个时间戳,如果控制变量和比较变量之间的时差在1小时内加上或减去比较后,我需要它执行。
现在看起来像这样,显然只有不到&等于:
if( ($departure - $item['time']) <= 3600) ):
会将<=
更改为<=>
吗?
答案 0 :(得分:3)
此<=>
运算符将提供组合比较,它将:
Return 0 if values on either side are equal
Return 1 if value on the left is greater
Return -1 if the value on the right is greater
您要做的是比较$departure - $item['time']
if(abs($departure - $item['time']) <= 3600)):
答案 1 :(得分:2)
不,<=>
运算符只在一边小/等于/大时返回-1/0/1,它只能在PHP7中运行。
在您的情况下,$departure - $item['time']
似乎可能会出现负值(如果$item['time']
大于$departure
),那么if语句将在以下情况下评估为true ,$item['time']
将来是$departure
两个,三个或更多个小时。
不会有这样的工作吗?
$diff = $departure - $item['time'];
if ($diff <= 3600 && $diff >= -3600)
{
// do what you have to do
}
&&
(AND)是一个逻辑运算符,这意味着两个较小的语句必须求值为true,以使complete语句为真。