note 86386 added to function.date

From: 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

« previous php.notes (#145401) next »