note 40909 deleted from function.mktime by tomsommer
| From: | tomsommer@php.net | 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