在php中計算時間差有時候是件麻煩的事!不過只要你掌握了日期時間函式的用法那這些也就變的簡單了。
最近在研究自己愛圍脖的時候就要計算到戀愛天數,這需要php根據每天的日期進行計算,下面就來談談實現這種日期計算的幾種方法:
(1) 如果有資料庫就很容易了!若是mssql可以使用觸發器!用專門計算日期差的函式datediff()便可!若是mysql那就用兩個日期欄位的差值計算的計算結果儲存在另乙個數值型字段中!用時呼叫便可!
(2)如果沒有資料庫,那就得完全用php的時間日期函式!
下面主要說明之:
例:計算2023年5月3日到1999-6-5的天數:
複製** **如下:
$startdate=mktime("0","0","0","5","3","1998"); $enddate=mktime("0","0","0","6","5","1999"); //所得到的值為從1970-1-1到引數時間的總秒數結果是整數.那麼下面的**就好編多了
$days=round(($enddate-$startdate)/3600/24) ;
echo $days;
其中$days為得到的天數;
若mktime()中的引數預設,那表示使用當前日期,這樣便可計算從借書日期至今的天數。
最後說一下sql的計算方法:
datediff 函式
描述:返回兩個日期之間的時間間隔。
語法:datediff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必選。字串表示式,表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱「設定」部分。
date1, date2: 必選。日期表示式。用於計算的兩個日期。
firstdayofweek: 可選。指定星期中第一天的常數。如果沒有指定,則預設為星期日。有關數值,請參閱「設定」部分。
firstweekofyear: 可選。指定一年中第一周的常數。如果沒有指定,則預設為 1 月 1 日所在的星期。有關數值,請參閱「設定」部分。
interval 引數可以有以下值:
yyyy (年)
q (季度)
m (月)
y (一年的日數)
d (日)
w (一周的日數)
ww (周)
h (小時)
n (分鐘)
s (秒)
firstdayofweek 引數可以有以下值:
(以下分別為:常數 值 描述)
vbusesystem 0 使用區域語言支援 (nls) api 設定。
vbsunday 1 星期日(預設)
vbmonday 2 星期一
vbtuesday 3 星期二
vbwednesday 4 星期三
vbthursday 5 星期四
vbfriday 6 星期五
vbsaturday 7 星期六
firstweekofyear 引數可以有以下值:
(以下分別為:常數 值 描述)
vbusesystem 0 使用區域語言支援 (nls) api 設定。
vbfirstjan1 1 由 1 月 1 日所在的星期開始(預設)。
vbfirstfourdays 2 由在新年中至少有四天的第一周開始。
vbfirstfullweek 3 由在新的一年中第乙個完整的周開始。
說明:datediff 函式用於判斷在兩個日期之間存在的指定時間間隔的數目。
例如可以使用 datediff 計算兩個日期相差的天數,或者當天到當年最後一天之間的星期數。
要計算 date1 和 date2 相差的天數,可以使用「一年的日數」(「y」)或「日」(「d」)。當 interval 為「一周的日數」(「w」)時,datediff 返回兩個日期之間的星期數。
如果 date1 是星期一,則 datediff 計算到 date2 之前星期一的數目。此結果包含 date2 而不包含 date1。
如果 interval 是「周」(「ww」),則 datediff 函式返回日曆表中兩個日期之間的星期數。函式計算 date1 和 date2 之間星期日的數目。
如果 date2 是星期日,datediff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚於 date2,則 datediff 函式返回負數。 firstdayofweek 引數會對使用「w」和「ww」間隔符號的計算產生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (「 」) 中並且省略年份,則在**中每次計算 date1 或 date2 表示式時,將插入當前年份。這樣就可以編寫適用於不同年份的程式**。
在 interval 為「年」(「yyyy」)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,datediff 返回 1 表示相差乙個年份。
datepart 函式
描述:返回給定日期的指定部分。 語法:
datepart(interval, date[, firstdayofweek[, firstweekofyear>)
datepart: 函式的語法有以下引數:
interval: 必選。字串表示式,表示要返回的時間間隔。有關數值,請參閱「設定」程式設計客棧部分。
date: 必選。要計算的日期表示式。
firstdayofwekylbtyiek: 可選。指定星期中的第一天的常數。如果沒有指定,則預設為星期日。有關數值,請參閱「設定」部分。
firstweekofyear: 可選程式設計客棧。指定一年中第一周的常數。如果沒有指定,則預設為 1 月 1 日所在的星期。有關數值,請參閱「設定」部分。
其中interval 引數可以有以下值: yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鐘) 、s (秒)
其中firstdayofweek 引數可以有以下值:
(以下分別為:常數 值 描述)
vbusesystem 0 使用區域語言支援 (nls) api 設定。
vbsunday 1 星期日(預設)
vbmonday 2 星期一
vbtuesday 3 星期二
vbwednesday 4 星期三
vbthursday 5 星期四
vbfriday 6 星期五
vbsaturday 7 星期六
firstweekofyear 引數可以有以下值:
(以下分別為:常數 值 描述)
vbusesystem 0 使用區域語言支援 (nls) api 設定。
vbfirstjan1 1 由 1 月 1 日所在的星期開始(預設)。
vbfirstfourdays 2 由在新年中至少有四天的第一周開始。
vbfirstfullweek 3 由在新的一年中第乙個完整的周(不跨年度)開始。
說明:datepart 函式用於計算日期並返回指定的時間間隔。例如使用 datep程式設計客棧art 計算某一天是星期幾或當前的時間。
其中firstdayofweek 引數會影響使用「w」和「ww」間隔符號的計算。
如果 date 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date 被包含在引號 (「 」) 中,並且省略年份,則在**中每次計算 date 表示式時,將插入當前年份。這樣就可以編寫適kylbtyi用於不同年份的程式**!
請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支援!
本文標題: 在php和mysql中計算時間差的方法詳解
本文位址:
在php和MySql中計算時間差的方法
最近在研究自己愛圍脖的時候就要計算到戀愛天數,這需要php根據每天程式設計客棧的日期進行計算,下面就來談談實現這種日期計算的幾種方法 1 如果有資料庫就很容易了 若是mssql可以使用觸發器 用專門計算日期差的函式datediff 便可 若是mysql那就用兩個日期欄位的差值計算的計算結果儲存在另乙...
mysql怎麼計算冪 在MySQL中計算數字的冪?
要計算數字的冪,請使用power 函式。讓我們首先建立乙個表 create table demotable amount int 使用插入命令在表中插入一些記錄 insert into demotable values 64 insert into demotable values 144 inse...
Excel中計算時間差
問題的提出 日期時間1 2005 5 15 9 10 45 日期時間2 2005 9 16 11 10 25 計算 日期時間2 日期時間1 結果表達 天 h mm dd 問題分析及思路 形如 2005 5 15 9 10 45 的日期時間資料可以用日期時間序列值表示。這個值是小數,其中整數部分表示天...