Создание условной функции на основе таймфрейма - PullRequest
1 голос
/ 24 июня 2019

Как видно из заголовка, мне нужно создать условную функцию в PHP на основе временных рамок.Я очень прост, когда дело доходит до знания PHP, но я могу понять концепции.

У меня есть какой-то сторонний код, но мне нужно, чтобы он функционировал только в определенном временном диапазоне и был по существу отключен, когда выходит за пределы диапазона.

Я пытаюсь добиться чего-то следующего:

IF time >=0800<=1700 (
    DO NOTHING
) ELSE (
    RUN CODE
)

Предыстория вопроса заключается в том, что у меня есть какой-то сторонний код для интеграции диалогового потока googles в веб-сайт, но в настоящее время он работает 24/7, У меня система livechat, работающая с 0800 до 1700, и я хочу, чтобы gaggles diaglogflow (chatbot) запускался, когда livechat не запущен.

Я не очень ищу прямой ответ, но большеконцепция того, как я могу достичь этого, чтобы я мог лучше учиться на будущее.

Спасибо, Мартын

1 Ответ

0 голосов
/ 24 июня 2019
IF time >=0800<=1700 (
    DO NOTHING
) ELSE (
    RUN CODE
)

Перво-наперво, в остальном вам не нужно, иначе только в порядке, в псевдокоде:

IF time < 0800 OR TIME > 1700
    RUN CODE

Следующее, что нужно знать, будет то, как проверить текущее время, есть много способов сделать это, поэтому давайте подумаем, какой из них будет лучшим.

Мы заботимся только о часах и минутах, поэтому давайте возьмем их.

$hourNow = date('H'); // $hour now is a string but we'd rather have it as an integer for better comparison.

$hourNow = (int) $hourNow; // this will cast, for example "15" to 15

$minuteNow = (int) date('i'); // as you can see you can do casting and getting a minute value at once


Теперь, когда у нас есть вся необходимая информация, ее легко написать:


if ($hourNow < 8 || ($hourNow === 17 && $minuteNow > 0) || $hourNow > 17) {
   // Do whatever you need in this case.
}

Условие довольно простое: если час меньше 8 - мы знаем, что это до 8 часов. Если это> 17, это, очевидно, позже.

А если это 17, это своего рода крайний случай, как это может быть 17:00 - поэтому нам нужно указать, что минута больше 0.

Надеюсь, это поможет, не стесняйтесь спрашивать, если что-то не ясно.

...