代码没有产生正确的输出

时间:2016-10-18 19:15:27

标签: php

我尝试创建一个允许用户输入时间/持续时间(hh:mm)的程序。如果此时间/持续时间超过一小时,则将15分钟添加到名为“MaintenanceDuration”的变量中。如果他们的输入小于或等于一小时,则添加10分钟。

当我运行代码时,它只会增加10分钟,尽管输入超过一小时。

我被告知它是因为$Duration未设置/定义,但是当用户提交输入时肯定是这样吗?

HTML:

<html>
<body>

<form action="maintenance-formula.php" method="post">
Duration: <input type="time" name="Duration" id="Duration"><br>
<input type="submit">
</form>

</body>
</html>

PHP:

<?php

$Duration = $_POST['Duration'];

if ($Duration > strtotime('1:00:00')) {
        echo "Added 15 maintenance minutes!";
        $MaintenanceDuration = strtotime('0:15:00');
} else {
        echo "Added 10 maintenance minutes!";
        $MaintenanceDuration = strtotime('0:10:00');
}

$MaintenanceDuration = strftime('%H:%M', $MaintenanceDuration);
echo $MaintenanceDuration;

?>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果$Duration严格按hh:mm格式提供,则必须解析它。

$parsedDuration = explode(':', $Duration);

$hours = intval($parsedDuration[0]);
$mins  = intval($parsedDuration[1]);

if ($hours > 0 && $mins > 0) {
    echo "Added 15 maintenance minutes!";
    $MaintenanceDuration = strtotime('0:15:00');
} else {
    echo "Added 10 maintenance minutes!";
    $MaintenanceDuration = strtotime('0:10:00');
}