strtotime函数不返回需要的值

时间:2013-01-16 03:32:43

标签: php

我在解决下面的代码时遇到问题基本上我正在做的是检查24小时格式的时间戳变量的值是否在1:00 PM之后,如果它然后转换它到12小时格式。当我有回报的价值时,它总是说下午6点。有什么问题?

以下是我获取$timeToday变量的方法

$timeToday = date("H:i A");

以下代码无效:

 if ($timeToday>"12:59"){
            $timeConverted = date("h:i A", strtotime($timeToday));
            echo "You clocked out at: " . $timeConverted . "<br>";
        } else {
        echo "You clocked out at: " . $timeToday . "<br>";
        }

1 个答案:

答案 0 :(得分:3)

您正在比较两个不具有相同格式的字符串。 $ timeToday是上午/下午,而你正在把它推到24小时。

此外,代码也会以任何方式打印AM / PM。如果我理解正确,你不想打印AM,只有PM。

 $format = strtotime($timeToday) > strtotime("12:59") ? "h:i A" : "h:i";
 $timeConverted = date($format, strtotime($timeToday));
 echo "You clocked out at: " . $timeConverted . "<br>";