php 中有兩種計(jì)算日期差的方法:1. 使用 dateinterval 類,2. 使用 strtotime 和 date_diff 函數(shù)。具體實(shí)現(xiàn)方法分別為:1. 使用 diff 方法獲取 dateinterval 對象中兩個(gè)日期的差,再獲取天數(shù)差;2. 將日期轉(zhuǎn)換成時(shí)間戳,使用 date_diff 函數(shù)獲取日期差,再將天數(shù)差轉(zhuǎn)換為整數(shù)。
PHP 日期之間相差天數(shù)計(jì)算方法
在 PHP 中,有兩種常見的方法可以計(jì)算兩個(gè)日期之間的天數(shù)差:
方法 1:DateInterval
<?php
// 日期1
$date1 = new DateTime('2023-03-08');
// 日期2
$date2 = new DateTime('2023-03-15');
// 計(jì)算日期差
$interval = $date1->diff($date2);
// 獲取天數(shù)差
$daysDiff = $interval->days;
// 輸出天數(shù)差
echo "日期差:{$daysDiff} 天";
?>
登錄后復(fù)制
方法 2:strtotime 和 date_diff
<?php
// 日期1
$date1 = strtotime('2023-03-08');
// 日期2
$date2 = strtotime('2023-03-15');
// 計(jì)算日期差
$daysDiff = (int) (($date2 - $date1) / 86400);
// 輸出天數(shù)差
echo "日期差:{$daysDiff} 天";
?>
登錄后復(fù)制
實(shí)戰(zhàn)案例
假設(shè)您有一個(gè)學(xué)生的出勤記錄,其中包含入學(xué)日期和退學(xué)日期。您希望了解學(xué)生在學(xué)校呆了多少天。
<?php
// 獲取入學(xué)日期和退學(xué)日期
$enrollmentDate = strtotime('2021-08-16');
$leaveDate = strtotime('2023-05-18');
// 使用strtotime和date_diff計(jì)算天數(shù)差
$daysDiff = (int) (($leaveDate - $enrollmentDate) / 86400);
// 輸出學(xué)生在學(xué)校呆了的天數(shù)
echo "學(xué)生在學(xué)校呆了:{$daysDiff} 天";
?>
登錄后復(fù)制






