2017-05-17 7 views
0

私は2つのタイムスタンプを比較する条件付きの書き込みを持っており、制御変数と比較変数の時間差が比較の1時間プラスまたはマイナス以内であれば実行する必要があります。PHPは1時間以内にタイムスタンプを比較+/-

それは明らかに等しい&よりだけ小さい。この今のようになります。

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

<=<=>に仕事を変えるのでしょうか?

答えて

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)): 
+0

簡単な解決策! –

2

いいえ、ちょうど<=>オペレータのabsolute値を比較することです1辺がそれぞれ小/等/大きい場合は-1/0/1を返し、PHP7でのみ動作します。

実際に3つ以上の時間、と言う、$item['time']が2であるとき、文が例で真と評価される場合は、あなたのケースで$departure - $item['time']は($item['time']$departureよりも大きい場合)、負の値に入るので、あなたの可能性と思われます未来$departureから。

この作品は気に入りませんか?

$diff = $departure - $item['time']; 
if ($diff <= 3600 && $diff >= -3600) 
{ 
    // do what you have to do 
} 

&&(AND)は、両方の小さな文が真であることが、完全な文のためには、trueに評価されなければならないことを意味する論理演算子です。

+0

はい、動作するように見えます、ありがとうございます。解決のためにそれを見るために、時にはそれはちょうど別の目を必要とします! –