0

我的代码有什么问题?我希望我的脚本检查它是否是星期一并且大于或等于 22:00 并且小于或等于 23:00。

$t = date("D:G:i");

if ($t >= "Mon:22:00" && $t <= "Mon:23:00") {
    $status = "up";
    } else {
    $status = "down";
    }
4

2 回答 2

0

你不能比较字符串(它不是日期,它只是任意符号的字符串),因为我们不是写代码的猴子,我只会描述你应该如何做而不是提供可复制粘贴的代码:

  1. 将当前时间的工作日数、小时、分钟转换为 3 个单独的变量
  2. 将工作日变量与星期一值进行比较
  3. 如果工作日没问题 - 将小时数与 22 进行比较
  4. 如果勾选 [22, 23),这里可以省略分钟,或者需要对 23:00 的情况进行额外比较

另一种方法 - 为最近的星期一 22 和 23 小时生成 unix 时间戳,然后进行数字比较

于 2013-10-18T23:15:34.210 回答
0

您正在比较两个字符串而不是两个数值。一点都不理想。您想研究将日期转换为 Unix 时间戳并比较这些值。

mktime: http: //php.net/manual/en/function.mktime.php

mktime将允许您获取任何日期的 Unix 时间戳。

时间: http: //php.net/manual/en/function.time.php

time将为您提供当前日期和时间作为 Unix 时间戳。

然后,您可以比较找出哪个比另一个更大/更小。

于 2013-10-18T23:18:45.957 回答