PHP 中的日期比较
phpserver side programmingprogramming
当两个日期的格式相似时,在 PHP 中匹配两个日期非常顺利,但是当两个日期的格式不相关时,php 无法分析。在本文中,我们将讨论 PHP 中日期比较的不同情况。我们将弄清楚如何利用 DateTime 类 strtotime() 来比较日期。
情况 1:
如果给定的日期格式相似,我们可以通过简单的比较运算符来分析日期。
<?php $date1 = "2018-11-24"; $date2 = "2019-03-26"; if ($date1 > $date2) echo "$date1 is latest than $date2"; else echo "$date1 is older than $date2"; ?>
输出:
2019-03-26 is latest than 2018-11-24
解释:
这里我们声明了两个日期 $date1 和 $date2,格式相同。因此我们使用比较运算符 (>) 来比较日期。
案例 2:
如果给定的日期格式不同,那么我们可以利用 strtotime() 函数将给定的日期转换为 UNIX 时间戳格式,并分析这些数字时间戳以获得预期结果。
示例:
<?php $date1 = "18-03-22"; $date2 = "2017-08-24"; $curtimestamp1 = strtotime($date1); $curtimestamp2 = strtotime($date2); if ($curtimestamp1 > $curtimestamp2) echo "$date1 is latest than $date2"; else echo "$date1 is older than $date2"; ?>
输出:
18-03-22 is latest than 2017-08-24
解释:
在此示例中,我们有两个格式不同的日期。因此,我们使用预定义函数 strtotime() 将它们转换为数字 UNIX 时间戳,然后为了比较这些时间戳,我们使用不同的比较运算符来获得所需的结果。
案例 3:
通过创建 DateTime 类的对象来比较两个日期。
示例:
<?php $date1 = new DateTime("18-02-24"); $date2 = new DateTime("2019-03-24"); if ($date1 > $date2) { echo 'datetime1 greater than datetime2'; } if ($date1 < $date2) { echo 'datetime1 lesser than datetime2'; } if ($date1 == $date2) { echo 'datetime2 is equal than datetime1'; } ?>
输出:
datetime1 lesser than datetime2
解释:
在此示例中,我们创建了两个 DateTime 对象。为了比较这两个日期,我们使用不同的比较运算符来获得所需的结果。