Extend the time functions DateDiff and DateAdd in php
function DateDiff($part, $begin, $end) { $diff = strtotime($end) - strtotime($begin); switch($part) { case "y": $retval = bcdiv($diff, (60 * 60 * 24 * 365)); break; case "m": $retval = bcdiv($diff, (60 * 60 * 24 * 30)); break; case "w": $retval = bcdiv($diff, (60 * 60 * 24 * 7)); break; case "d": $retval = bcdiv($diff, (60 * 60 * 24)); break; case "h": $retval = bcdiv($diff, (60 * 60)); break; case "n": $retval = bcdiv($diff, 60); break; case "s": $retval = $diff; break; } return $retval; } function DateAdd($part, $number, $date) { $date_array = getdate(strtotime($date)); $hor = $date_array["hours"]; $min = $date_array["minutes"]; $sec = $date_array["seconds"]; $mon = $date_array["mon"]; $day = $date_array["mday"]; $yar = $date_array["year"]; switch($part) { case "y": $yar += $number; break; case "q": $mon += ($number * 3); break; case "m": $mon += $number; break; case "w": $day += ($number * 7); break; case "d": $day += $number; break; case "h": $hor += $number; break; case "n": $min += $number; break; case "s": $sec += $number; break; } return date("Y-m-d H:i:s", mktime($hor, $min, $sec, $mon, $day, $yar)); } Function DateAdd($part, $n, $date) { switch($part) { case "y": $val = date("Y-m-d H:i:s", strtotime($date ." +$n year")); break; case "m": $val = date("Y-m-d H:i:s", strtotime($date ." +$n month")); break; case "w": $val = date("Y-m-d H:i:s", strtotime($date ." +$n week")); break; case "d": $val = date("Y-m-d H:i:s", strtotime($date ." +$n day")); break; case "h": $val = date("Y-m-d H:i:s", strtotime($date ." +$n hour")); break; case "n": $val = date("Y-m-d H:i:s", strtotime($date ." +$n minute")); break; case "s": $val = date("Y-m-d H:i:s", strtotime($date ." +$n second")); break; } return $val; }
datediff is to calculate the difference between two times, such as days, months, or years, etc.
select datediff(day,'2008.9.2','2008.10.28')
dateadd is to calculate how many days are added to the known time and what month it is.
select dateadd(year,10,getdate())
select dateadd(month,10,getdate ())
select dateadd(day,10,getdate())
Returns the time interval between two dates.
Syntax
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
The syntax of the DateDiff function has the following parameters:
Parameter Description
interval Required. A string expression used to calculate the time interval between date1 and date2. See the Settings section for values.
date1, date2 are required. Date expression. Two dates used for calculation.
firstdayofweek optional. A constant that specifies the first day of the week. If not specified, it defaults to Sunday. See the Settings section for values.
firstweekofyear optional. Constant that specifies the first week of the year. If not specified, it defaults to the week of January 1st. See the Settings section for values.
Settings
interval parameter can have the following values:
Setting description
yyyy year
q quarter
m month
y number of days in a year
d day
w Days of the week
ww Week
h hours
m minutes
s seconds