gpt4 book ai didi

php - 有没有办法从逻辑上比较 PHP DateTime 对象?

转载 作者:行者123 更新时间:2023-11-29 12:08:45 26 4
gpt4 key购买 nike

这是一个简单项目的一部分,该项目将工资时间记录为 MySQL 5.5 中的日期时间对象。我正在尝试比较两个日期时间值,看看它们是否至少相隔 30 分钟。听起来很简单,但 $lastshiftend 的值一直设置为与 $mealendtime 相同的值,我不知道在哪里或如何设置。这似乎是唯一的问题,但肯定可能还有其他我遗漏的东西。 TIA。

if ($result = mysqli_query($conn, $select)) {
$row_count = mysqli_num_rows($result);
if($row_count == 1) {
// 30 Minute Meal Break
$lastshiftend = new DateTime($row[3]);
$mealendtime = new DateTime('NOW');
$mealtime = $mealendtime->diff($lastshiftend);
$mealminend = $lastshiftend->add(new DateInterval(PT30M));
// $mealminend = $lastshiftend->modify('+ 30 minute');

if($mealendtime < $mealminend) {
echo '<br>Colorado State law requires meal breaks to be at least 30 minutes in length.';
echo '<hr><a href="./index.html">Main Menu</a>';
} else {
echo 'Log it!';
// header("Location: ./ActionClockIn.php");
}
} else {
echo 'Error! If you ended up here something broke!.';
echo '<hr><a href="./index.html">Main Menu</a>';
}

}

最佳答案

除非你使用DateTimeImmutable()当您调用 DateTime::add()DateTime::modify()

等方法时,您的 DateTime 对象将被修改
$lastshiftend = new DateTimeImmutable($row[3]);
// Now $lastshiftend is unchanged
$mealminend = $lastshiftend->add(new DateInterval(PT30M));

看起来两个 DateTime 对象都需要它

$lastshiftend = new DateTimeImmutable($row[3]);
$mealendtime = new DateTimeImmutable(); //"NOW" is not necessary
$mealtime = $mealendtime->diff($lastshiftend);
$mealminend = $lastshiftend->add(new DateInterval(PT30M));

关于php - 有没有办法从逻辑上比较 PHP DateTime 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31056892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com