📅  最后修改于: 2023-12-03 15:26:54.367000             🧑  作者: Mango
在 PHP 中比较两个日期需要用到日期时间函数,其中最常用的有 strtotime
和 date_diff
。本文将介绍如何使用这两个函数来比较 PHP 的两个日期。
strtotime
将任何英文文本日期时间描述解析为 Unix 时间戳。Unix 时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC
到当前时间的秒数。
使用 strtotime
函数可以将 YYYY-MM-DD
等日期格式解析为 Unix 时间戳。例如:
$date1 = strtotime('2019-01-01');
$date2 = strtotime('2020-01-01');
上面代码中,$date1
和 $date2
分别表示 2019 年 1 月 1 日
和 2020 年 1 月 1 日
的 Unix 时间戳。
比较两个日期的方法是将两个 Unix 时间戳相减,例如:
$diff = $date2 - $date1;
上面代码中,$diff
的值为 31536000
,表示 2019 年 1 月 1 日
到 2020 年 1 月 1 日
相差 31536000
秒,即一年。
date_diff
函数是 PHP 5.3 中新加入的日期时间函数,用于计算两个日期之间的差异。该函数需要两个 DateTime
对象作为参数,返回一个 DateInterval
对象。
使用 date_create
函数可以创建 DateTime
对象。例如:
$date1 = date_create('2019-01-01');
$date2 = date_create('2020-01-01');
上面代码中,$date1
和 $date2
分别表示 2019 年 1 月 1 日
和 2020 年 1 月 1 日
对应的 DateTime
对象。
使用 date_diff
函数可以计算 $date1
和 $date2
之间的差异。例如:
$interval = date_diff($date1, $date2);
上面代码中,$interval
的值是 DateInterval
对象,表示 $date1
和 $date2
之间的差异。
DateInterval
对象提供了各种方法来获取差异的各个部分,例如:
$years = $interval->y;
$months = $interval->m;
$days = $interval->d;
上面代码中,$years
的值为 1
,表示 $date1
和 $date2
相差一年,$months
的值为 0
,表示 $date1
和 $date2
相差零个月,$days
的值为 0
,表示 $date1
和 $date2
相差零天。
比较 PHP 的两个日期可以使用 strtotime
和 date_diff
函数。strtotime
函数将任何英文文本日期时间描述解析为 Unix 时间戳,date_diff
函数用于计算两个 DateTime
对象之间的差异。无论使用哪种方法,都需要将日期格式化为标准格式,例如 YYYY-MM-DD
。