note 86386 added to function.date
| From: | tchapin at gmail dot com | Date: | Thu, 16 Oct 2008 05:57:57 +0000 |
| Subject: | note 86386 added to function.date | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-145401@lists.php.net to get a copy of this message | ||
<?php
// Function used to take two date strings, and returns an associative array
// with different formats for the difference between the dates.
// Example: GetDateDifference('01/09/2008', '01/09/2009');
// Returns:
// Array['YearsSince'] = 1
// Array['MonthsSince'] = 12
// Array['DaysSince'] = 365
// Array['HoursSince'] = 8760
// Array['MinutesSince'] = 31536000
// Array['SecondsSince'] = 31536000
// Array['NiceString'] = "1 year"
function GetDateDifference($StartDateString=NULL, $EndDateString=NULL) {
$ReturnArray = array();
$SDSplit = explode('/',$StartDateString);
$StartDate = mktime(0,0,0,$SDSplit[0],$SDSplit[1],$SDSplit[2]);
$EDSplit = explode('/',$EndDateString);
$EndDate = mktime(0,0,0,$EDSplit[0],$EDSplit[1],$EDSplit[2]);
$DateDifference = $EndDate-$StartDate;
$ReturnArray['YearsSince'] = $DateDifference/60/60/24/365;
$ReturnArray['MonthsSince'] = $DateDifference/60/60/24/12;
$ReturnArray['DaysSince'] = $DateDifference/60/60/24;
$ReturnArray['HoursSince'] = $DateDifference/60/60;
$ReturnArray['MinutesSince'] = $DateDifference/60;
$ReturnArray['SecondsSince'] = $DateDifference;
$y1 = date("Y", $StartDate);
$m1 = date("m", $StartDate);
$d1 = date("d", $StartDate);
$y2 = date("Y", $EndDate);
$m2 = date("m", $EndDate);
$d2 = date("d", $EndDate);
$diff = '';
if (($EndDate - $StartDate)<0) {
$diff = "Error: Start date is before end date!";
} else {
$y = $y2 - $y1;
$m = $m2 - $m1;
$d = $d2 - $d1;
$daysInMonth = date("t",$m2);
if ($d<0) {$m--;$d=$daysInMonth-$d;}
if ($m<0) {$y--;$m=12-$m;}
if ($y>0) $diff .= $y==1 ? "1 year" : "$y years";
if ($y>0 && $m>0) $diff .= ", ";
if ($m>0) $diff .= $m==1? "1 month" : "$m months";
if (($m>0||$y>0) && $d>0) $diff .= ", and ";
if ($d>0) $diff .= $d==1 ? "1 day" : "$d days";
}
$ReturnArray['NiceString'] = $diff;
return $ReturnArray;
}
?>
----
Server IP: 208.69.120.35
Probable Submitter: 24.248.85.247
----
Manual Page -- http://www.php.net/manual/en/function.date.php
Edit -- https://master.php.net/note/edit/86386
Del: integrated -- https://master.php.net/note/delete/86386/integrated
Del: useless -- https://master.php.net/note/delete/86386/useless
Del: bad code -- https://master.php.net/note/delete/86386/bad+code
Del: spam -- https://master.php.net/note/delete/86386/spam
Del: non-english -- https://master.php.net/note/delete/86386/non-english
Del: in docs -- https://master.php.net/note/delete/86386/in+docs
Del: other reasons-- https://master.php.net/note/delete/86386
Reject -- https://master.php.net/note/reject/86386
Search -- https://master.php.net/manage/user-notes.php