note 40909 deleted from function.mktime by tomsommer

From: Date: Sun, 07 Nov 2004 20:29:04 +0000
Subject: note 40909 deleted from function.mktime by tomsommer
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-80248@lists.php.net to get a copy of this message
Note Submitter: zaweb ---- This function calculates difference in days / hours / minutes / seconds between 2 datetime string. Input format is the mysql datetime : YYYY-mm-dd HH:ii:ss Default Output is [-] # Days # Hours # Minutes # Seconds There are some debugging lines as comments. If from datetime is grather than to datetime the sign '-' will be before output string False is returned if date are equals. There aren't any control for input strings. function diffDeateTime($datetime_from,$datetime_to) { //if start date is grather inverting dates //divide dateime in date and time $datetime_from_parts = explode (' ',$datetime_from); $datetime_to_parts = explode (' ',$datetime_to); $date_from = $datetime_from_parts[0]; $date_to = $datetime_to_parts[0]; $time_from = $datetime_from_parts[1]; $time_to = $datetime_to_parts[1]; //get parts of the time $time_from_parts = explode(':', $time_from); $time_to_parts = explode(':', $time_to); $hour_from = $time_from_parts[0]; $minute_from = $time_from_parts[1]; $second_from = $time_from_parts[2]; $hour_to = $time_to_parts[0]; $minute_to = $time_to_parts[1]; $second_to = $time_to_parts[2]; //get parts of the dates $date_from_parts = explode('-', $date_from); $date_to_parts = explode('-', $date_to); $day_from = $date_from_parts[2]; $mon_from = $date_from_parts[1]; $year_from = $date_from_parts[0]; $day_to = $date_to_parts[2]; $mon_to = $date_to_parts[1]; $year_to = $date_to_parts[0]; $mktime_from = mktime( $hour_from,$minute_from,$second_from, $mon_from, $day_from,$year_from); $mktime_to = mktime( $hour_to,$minute_to,$second_to, $mon_to, $day_to,$year_to); if($mktime_from > $mktime_to) { $tmp = $mktime_to; $mktime_to = $mktime_from; $mktime_from = $tmp; $sign = "-"; } else $sign = ""; //if date_from is newer than date to, invert dates //echo $mktime_from." - ".$mktime_to."<br>"; $diff = $mktime_to - $mktime_from; $offset = $diff % 86400; $days = (floor (($diff - $offset)/86400 )); //echo "--diff: ".$diff."<br>--offset: ".$offset."<br>--days: ".$days."<br><br><br>"; $diff = $offset; $offset = $diff % 3600; $hours = (floor (($diff - $offset)/3600 )); //echo "--diff: ".$diff."<br>--offset: ".$offset."<br>--hours: ".$hours."<br><br><br>"; $diff = $offset; $offset = $diff % 60; $minutes = (floor (($diff - $offset)/60 )); //echo "--diff: ".$diff."<br>--offset: ".$offset."<br>--minutes: ".$minutes."<br><br><br>"; $seconds = $offset; //echo "--seconds: ".$seconds."<br><br><br>"; $str = $sign; if($days) $str .= $days." Days "; if($hours) $str .= $hours." Hours "; if($minutes) $str .= $minutes." Minutes "; if($seconds) $str .= $seconds." Seconds "; if($str != "") return $str; else return false; } Hi

« previous php.notes (#80248) next »