php - 根据时间范围创建条件函数
问题描述
正如标题所示,我需要根据时间框架在 PHP 中创建一个条件函数。在PHP知识方面我非常基础,但可以理解概念。
我有一些第 3 方代码,但我需要它只在某个时间范围内运行,并且在超出范围时基本上被禁用。
我正在尝试实现以下目标:
IF time >=0800<=1700 (
DO NOTHING
) ELSE (
RUN CODE
)
这个问题的背景是我有一些 3rd 方代码将谷歌对话流集成到一个网站中,但它目前运行 24/7,我有一个从 0800 到 1700 运行的实时聊天系统,并希望谷歌的 diaglogflow(聊天机器人)在实时聊天时运行没跑
我并不是真的在寻找一个直截了当的答案,而是更多关于如何实现这一目标的概念,以便我可以更好地为未来学习。
谢谢,马丁
解决方案
IF time >=0800<=1700 (
DO NOTHING
) ELSE (
RUN CODE
)
首先,您不需要 if else,单独使用 else 就可以了,在伪代码中:
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。
我希望这会有所帮助,请随时询问是否有不清楚的地方。
推荐阅读
- tensorboard - Tensorboard 在端口 6006 上未正常运行
- python - 将 TouchRippleBehavior 或 TouchRippleButtonBehavior 应用于 Kivy 中的按钮?
- c - 花括号在 Vim 中标记为语法错误
- node.js - iisnode 不在 Chrome 中存储 cookie
- flutter - Flutter:跳过分配变量
- python - 如代码库中所示,如何在 python 中获得干净的函数签名?
- sql-server - 存储过程while循环等待另一个存储过程的输出状态
- bash - 按日期列拆分 csv 并保存到不同的文件夹
- java - 计算字符串数组中字符串的出现次数
- javascript - 避免通过用户事件并行执行函数体,直到完成先前触发的执行 - Javascript