In PHP-Programmen treten häufig Probleme mit der Verarbeitungszeit auf, z. B. bei der Bestimmung, wie lange ein Benutzer online war, wie viele Tage er angemeldet war, dem Zeitunterschied zwischen zwei Beiträgen oder Protokolldatensätzen zwischen verschiedenen Vorgängen usw. Warten. In dem Artikel wird ein einfaches Beispiel gegeben, wie die Differenz in Jahren, Monaten und Tagen zwischen zwei Datumsangaben in PHP berechnet wird.
<?php /** +---------------------------------------------------------- * 功能:计算两个日期相差 年 月 日 +---------------------------------------------------------- * @param date $date1 起始日期 * @param date $date2 截止日期日期 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ function DiffDate($date1, $date2) { if (strtotime($date1) > strtotime($date2)) { $ymd = $date2; $date2 = $date1; $date1 = $ymd; } list($y1, $m1, $d1) = explode('-', $date1); list($y2, $m2, $d2) = explode('-', $date2); $y = $m = $d = $_m = 0; $math = ($y2 - $y1) * 12 + $m2 - $m1; $y = round($math / 12); $m = intval($math % 12); $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400; if ($d < 0) { $m -= 1; $d += date('j', mktime(0, 0, 0, $m2, 0, $y2)); } $m < 0 && $y -= 1; return array($y, $m, $d); } ?>