计算PHP中日期之间的差异

在PHP后端中,日期是常见数据。很多时候我们需要找出年数;月和日期在两个日期之间,例如事件倒计时。使用PHP的内置函数将字符串中的日期转换为日期格式,我们将学习如何计算PHP中的日期之间的差

以下是执行此操作的代码,稍后我们将对其进行分解。

<?php
	$date1 = "2007-03-24";
	$date2 = "2009-06-26";

	$diff = abs(strtotime($date2) - strtotime($date1));

	$years = floor($diff / (365*60*60*24));
	$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
	$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

	printf("%d years, %d months, %d days\n", $years, $months, $days);
?>

在此代码中,我们首先使用标准的YYYY-MM-DD格式定义两个日期变量$date1和$date2,然后计算它们之间的差。但是我们不能直接这样做,因为它们都是字符串格式。

要将这些日期从字符串转换为实际的日期时间数据类型,我们使用该strtotime()函数期望将字符串转换为日期。请注意,该字符串应为有效日期。该strtotime()转换两个日期,以UNIX时间,然后计算出它们之间的秒数。由此很容易计算出不同的时间段。我们将差异存储在$diff变量中。

然后,我们使用简单的数学方法将日期转换为年,月和日,从而计算日期的不同部分。我们使用下限函数以整数格式获取天,月和日。对于这几个月,我们必须从去年开始计算。这就是为什么我们几年也使用地板。接下来,我们使用年和月以类似的方式获取日期。

最后,我们打印结果。