程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現的DateDiff和DateAdd時間函數代碼分享,datediffdateadd

php實現的DateDiff和DateAdd時間函數代碼分享,datediffdateadd

編輯:關於PHP編程

php實現的DateDiff和DateAdd時間函數代碼分享,datediffdateadd


擴展php中的時間函數DateDiff和DateAdd

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;
}

DATEADD與DATEDIFF在SQL語句中是什?

datediff是計算兩個時間間的差,如差幾天或是幾個月,或是幾年等
select datediff(day,'2008.9.2','2008.10.28')

dateadd則是算出在已知時間的基礎上再加多少天是幾月幾日.
select dateadd(year,10,getdate())
select dateadd(month,10,getdate())
select dateadd(day,10,getdate())
 

對於DATEDIFF函數問題

返回兩個日期之間的時間間隔。
語法
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函數的語法有以下參數:

參數 描述
interval 必選。字符串表達式,表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱“設置”部分。
date1, date2 必選。日期表達式。用於計算的兩個日期。
firstdayofweek 可選。指定星期中第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱“設置”部分。
firstweekofyear 可選。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱“設置”部分。

設置
interval 參數可以有以下值:
設置 描述
yyyy 年
q 季度
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 小時
m 分鐘
s 秒
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved