php - 日期时间比较 PHP

标签 php datetime date-comparison

第二个 block 应该执行但没有执行。现在我要添加另一个句子,以便堆栈让我进行此编辑。

  <?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 object 并且您的比较将始终相等(您正在比较同一个对象)。使用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";
}

Demo

关于php - 日期时间比较 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804266/

相关文章:

java - DateTimeParseException : Text '2019-08-13T07:29:12.000+0000' could not be parsed, 在索引 23 处找到未解析的文本

go - 为什么与 == 相比,具有相同日期和时间的 2 个时间结构返回 false?

sql - 在 PostgreSQL 中获取一个范围内的日期列表

WAMP 中的 PHP 无法访问映射的驱动器

php - Joomla 3 : JForm class. 如何提交它创建的表单?

python - Pandas 数据框每天重新采样和计数事件

mysql - 比较不同数据库上两个相同表结构的不同数据

php - 我正在从外部 URL 提取数据,但无法让 javascript 函数正常工作

php - PHP 中的自动增量值

c# - 将从互联网上提取的字符串转换为 DateTime