在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变量中。
然后,我们使用简单的数学方法将日期转换为年,月和日,从而计算日期的不同部分。我们使用下限函数以整数格式获取天,月和日。对于这几个月,我们必须从去年开始计算。这就是为什么我们几年也使用地板。接下来,我们使用年和月以类似的方式获取日期。
最后,我们打印结果。