我必须将时间与存储在变量中的时间值进行比较。我已经设计了逻辑,但它在时间上失败了。
以下是逻辑:
$diff = "22:32:53";
if ($diff > strtotime("072:00:00") )
{
echo "DO A";
}
else if ($diff < strtotime("08:00:00"))
{
echo "DO B";
}
else if( $diff > strtotime("08:00:00") && $diff < strtotime("072:00:00"))
{
echo "DO C";
}
但它回应了#A;做A&#34;而它应该显示&#34; DO C&#34;。无法弄清楚我在哪里缺少逻辑
提前致谢。
答案 0 :(得分:0)
如果您想比较时间(没有日期),最好的方法是将它们手动转换为秒,然后比较秒数。 strtotime
可能会有效,但在比较之前,您还需要在$diff
上运行它。
答案 1 :(得分:0)
首先,$ diff是一个不是int的字符串,它应该是:
$diff = strtotime("22:32:53");
通常使用DateTime::diff
进行比较无论如何,比较将无效,因为如果你检查
var_dump(strtotime("072:00:00"));
将返回:
false
strtotime正在尝试将格式与已知时间格式匹配,而72则不是有效时间。