php比较一小时内的时间戳+/-

时间:2017-05-17 14:20:37

标签: php

我有条件写入比较两个时间戳,如果控制变量和比较变量之间的时差在1小时内加上或减去比较后,我需要它执行。

现在看起来像这样,显然只有不到&等于:

if( ($departure - $item['time']) <= 3600) ): 

会将<=更改为<=>吗?

2 个答案:

答案 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']

absolute
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语句为真。