我有一个名为“dobs”的 mysql 表,其中有一个名为“dob”的字段,该字段是日期/时间字段。因此该领域的示例可能是:
- 2010-09-24 01:01:00
- 2008-09-24 00:00:00(这意味着没有输入时间,只输入了日期。我不允许输入午夜以避免混淆。如果用户尝试输入午夜,则会输入“00:01: 00”)
我需要循环遍历所有字段并检查该字段的任何 TIME 部分是否是“00:00:00”以外的任何内容。
如果其中只有一个有“00:00:00”以外的内容,那么我希望循环停止,因为我现在知道我需要知道什么。
这是我到目前为止所拥有的:
$sql = "SELECT dob FROM dobs";
$getdobs= mysqli_query($connection, $sql);
if (!$getdobs) {
die("Database query failed: " . mysqli_error($connection));
} else {
while ($row = mysqli_fetch_array($getdobs)) {
if (date("H:i", strtotime($row['dob'])!=="00:00") {
//stop loop and set $times=yes
$times="yes";
break;
} else {
//keep looping to look at next one
$times="no";
}
}
}
现在我可以检查 $times 是或否,以做我需要做的进一步事情。上面的代码有效,我只是担心这不是最有效的方法。两个问题:
- 我是否使用“break”正确“停止”了循环?
- 是否有明显更有效的方法来执行此类检查?
最佳答案
你的代码是正确的。 Break 是停止循环的正确保留字。如果您要在 if 语句不满足时继续循环,您可以删除 else 语句,因为它是无关紧要的,除非它从未找到最后一行中不为 00:00 的日期。希望有帮助。
关于php - 如何对日期/时间mysql字段执行循环检查时间值不等于 "00:00"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462521/