Я работаю с отметками времени, чтобы выяснить, если два человека онлайн за тот же период времени, вот мой UTC метки времени только для справки:PHP Отметка только час
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:00 и 12:00, это говорит о том, что между 1380668400 и 1380585600 он идет в обратном направлении, что отбрасывает весь фрагмент кода. Как мне написать временную метку, которая определяет час, а не день, или как я буду работать вокруг этого? Мой мозг горит.
Update
После долгих головной боли ответ проще, чем это должно было быть, все даты статическими, так захватывая их динамически не то, что я планирую делать, я только с помощью функции даты, так что я не нужно записывать новые значения 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';
почему это важно?Если у вас есть онлайн-время для пользователей в UTC, просто проверьте, находятся ли они в часе друг друга: 'if (abs ($ user1 - $ user2) <= 3600) {тот же период времени}' ./ –