Code sharing of the DateDiff and DateAdd time functions implemented by php, datediffdateadd
Extended 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;}
What are the values of DATEADD and DATEDIFF in SQL statements?
Datediff is used to calculate the difference between two time periods, such as the difference of several days, months, or years.
Select datediff (day, '192. 123', '192. 123 ')
Dateadd is used to calculate the number of days that can be added based on the known time.
Select dateadd (year, 10, getdate ())
Select dateadd (month, 10, getdate ())
Select dateadd (day, 10, getdate ())
For DATEDIFF Functions
Returns the interval between two dates.
Syntax
DateDiff (interval, date1, date2 [, firstdayofweek [, firstweekofyear])
The syntax of the DateDiff function includes the following parameters:
Parameter description
Interval is required. String expression used to calculate the time interval between date1 and date2. For values, see the "Settings" section.
Date1 and date2 are required. Date expression. Two dates used for calculation.
Firstdayofweek is optional. Specify the constant of the first day of the week. If not specified, the default value is Sunday. For values, see the "Settings" section.
Firstweekofyear is optional. Specifies the constant of the first week of a year. If this parameter is not specified, the default value is the week of April 1, January 1. For values, see the "Settings" section.
Set
The interval parameter can have the following values:
Set description
Yyyy
Q quarter
M month
Y number of days in a year
D
Number of days per week
Ww week
H hour
M minutes
S seconds