在PHP中,当两个日期具有相似的格式时,匹配两个日期非常顺利,但是当两个日期具有不相关的格式时,PHP无法分析。在本文中,我们将讨论PHP中日期比较的不同情况。我们将找出如何使用DateTime类和strtotime()函数来比较日期。
案例1:
如果给定的日期具有相似的格式,我们可以通过简单的比较运算符来分析这些日期。
1 2 3 4 5 6 7 8 | <?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" ;
?>
|
登录后复制
输出:
1 | 2019-03-26 is latest than 2018-11-24
|
登录后复制
说明:
这里我们以相同的格式声明了两个日期$date1和$date2。因此,我们使用比较运算符 (>) 来比较日期。
情况 2:
如果给定的日期此时采用各种格式,我们可以使用 strtotime()函数将给定日期转换为 UNIX 时间戳格式并分析这些数字时间戳以获得预期结果。
示例:
1 2 3 4 5 6 7 8 9 10 | <?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" ;
?>
|
登录后复制
输出:
1 | 18-03-22 is latest than 2017-08-24
|
登录后复制
Explanation:
在这个例子中,我们有两个以不同格式表示的日期。因此,我们使用预定义的函数strtotime()将它们转换为数值型UNIX时间戳,然后使用不同的比较运算符来比较这些时间戳,以获得所需的结果。
Case 3:
通过创建DateTime类的对象来比较两个日期。
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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';
}
?>
|
登录后复制
输出:
1 | datetime1 lesser than datetime2
|
登录后复制
Explanation:
在这个例子中,我们创建了两个DateTime对象。为了比较这两个日期,我们使用不同的比较运算符来得到所需的结果。
以上是PHP中日期的比较的详细内容。更多信息请关注PHP中文网其他相关文章!