php - 日期时间比较 PHP
问题描述
第二个块应该执行,但都不执行。现在我要添加另一个句子,因此堆栈将让我进行此编辑。
<?php
$earlier_time = new DateTime('2018-12-16 11:17:30');
$thirty_seconds_later = $earlier_time->add(new DateInterval('PT' . 30 . 'S'));
if ($thirty_seconds_later < $earlier_time) {
echo "left is less than right";
} else if ($thirty_seconds_later > $earlier_time) {
echo "left is greater than right";
}
?>
解决方案
这是因为当您使用DateTime()
它时它不是不可变的,因此当您调用DateTime::add()
时更改$earlier_time
对象并且您的比较将始终相等(您正在比较同一个对象)。用来DateTimeImmutable()
解决这个问题。
<?php
$earlier_time = new DateTimeImmutable('2018-12-16 11:17:30');
$thirty_seconds_later = $earlier_time->add(new DateInterval('PT' . 30 . 'S'));
if ($thirty_seconds_later < $earlier_time) {
echo "left is less than right";
} else if ($thirty_seconds_later > $earlier_time) {
echo "left is greater than right";
}
推荐阅读
- powerbi-desktop - 在 PowerBI 桌面另存为菜单中看不到“SQL Server Reporting Services”
- python - Sympy 模块运行非常缓慢
- c# - 在单独的下拉列表中显示保存的值
- latex - Latex 中的签名页
- javascript - 如何让我的脚本读取下标输出作为预设变量名
- c++ - 将填充的地图插入模板 bst
- python - 如何在python中将dotx文件转换为html文件?
- javascript - env-cmd 错误未能在 gatsby 中找到 ./.env 文件?
- symfony - 在树枝中显示自引用实体
- objective-c - 如何在objective-c的文档中引用变量或const?