タイムスタンプを使用して、同じ期間に 2 人がオンラインであるかどうかを確認しています。参考までに、UTC タイムスタンプを次に示します。
date_default_timezone_set('UTC');
$utc12am = 1380585600;
$utc1am = 1380589200;
$utc2am = 1380592800;
$utc3am = 1380596400;
$utc4am = 1380600000;
$utc5am = 1380603600;
$utc6am = 1380607200;
$utc7am = 1380610800;
$utc8am = 1380614400;
$utc9am = 1380618000;
$utc10am = 1380621600;
$utc11am = 1380625200;
$utc12pm = 1380628800;
$utc1pm = 1380632400;
$utc2pm = 1380636000;
$utc3pm = 1380639600;
$utc4pm = 1380643200;
$utc5pm = 1380646800;
$utc6pm = 1380650400;
$utc7pm = 1380654000;
$utc8pm = 1380657600;
$utc9pm = 1380661200;
$utc10pm = 1380664800;
$utc11pm = 1380668400;
私が遭遇する問題は、誰かが午後 10 時から午前 12 時までの間オンラインであると言った場合、1380668400 から 1380585600 の間で逆方向に進んでいると言っているようなもので、コード全体が失われます。日ではなく時間を定義するだけのタイムスタンプを作成するにはどうすればよいですか? または、これを回避するにはどうすればよいでしょうか? 私の脳は燃えています。
アップデート
頭痛の種の後、答えは必要以上に単純です。すべての日付は静的であるため、動的に取得することは計画していません。日付関数のみを使用しているため、新しい UTC 値を書き出す必要はありません。すべてのタイムゾーン。とにかく、私は絵を描きましたが、それは本当に助けになりました。$max が $mina - $maxa の境界内にあるかどうか、または $min が $mina - $maxa の境界内にあるかどうかを確認するだけで済みます。こんなに時間がかかったなんて信じられない
$blend = 'False';
if((($maxa > $min) And ($maxa < $max)) Or (($mina > $min) And ($mina < $max))) {
$blend = 'True';
}
if($min > $max) {
if(($mina > $min) Or ($mina < $max)) {
$blend = 'True';
}
if(($maxa > $min) Or ($maxa < $max)) {
$blend = 'True';
}
}
if($min === $max) $blend = 'True';