如何使用php比较两次

时间:2014-10-08 12:50:22

标签: php datetime

我必须将时间与存储在变量中的时间值进行比较。我已经设计了逻辑,但它在时间上失败了。

以下是逻辑:

$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;。无法弄清楚我在哪里缺少逻辑

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果您想比较时间(没有日期),最好的方法是将它们手动转换为秒,然后比较秒数。 strtotime可能会有效,但在比较之前,您还需要在$diff上运行它。

答案 1 :(得分:0)

首先,$ diff是一个不是int的字符串,它应该是:

$diff = strtotime("22:32:53");

通常使用DateTime::diff

进行比较

无论如何,比较将无效,因为如果你检查

var_dump(strtotime("072:00:00"));

将返回:

false

strtotime正在尝试将格式与已知时间格式匹配,而72则不是有效时间。