今日は壁に頭をぶつけて日付を扱っています。一連の日時をループし、それらを現在の日付と比較して、それらがどれだけ離れているかを判断しています。
したがって、「tomorow @ 4pm」、「yesterday at 3pm」、「today at 12pm」、「3 days ago」、「in 3 days」などを返します。
今日/明日/昨日頃になるまで、すべて正常に動作します。
Date diff は、これらの日付になると、-0 や +0 などのばかげたものを返します。私の理論では、「翌日」に行われたとしても、23 時間後、または 10 時間後という日付は、1 ではなく 0 として返されます。
残念ながら、date_diff は 10 進数を返すようには見えず、丸めを行うこともできません。
サンプルコードは次のとおりです。
$difference = $meeting_date->diff($current_date);
$difference = $difference->format('%R%a');
次に、この差分整数をチェックして、0、-1、1、< -1、または > 1 であるかどうかを確認します。必要に応じて、前の + 記号を処理します。
-1 または +1 であるはずのものが、-0 または +0 として返されることがあります (..what?)
また、-0 は = 0 ではありませんが、PHP によると明らかに -1 未満です。
SOS、誰か助けて。
関連するすべての質問を読みましたが、これは重複ではなく、ランダムな 6015 エラーとは関係ありません。また、 diff->days を使用することは答えではありません。これは常に絶対値を返し、問題となる負の値ではありません。