本篇內(nèi)容主要講解“在php和MySql中計(jì)算時(shí)間差的方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“在php和MySql中計(jì)算時(shí)間差的方法”吧!
創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、友好網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、友好網(wǎng)絡(luò)營(yíng)銷(xiāo)、友好企業(yè)策劃、友好品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供友好建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):13518219792,官方網(wǎng)址:www.cdcxhl.com在php中計(jì)算時(shí)間差有時(shí)候是件麻煩的事!不過(guò)只要你掌握了日期時(shí)間函數(shù)的用法那這些也就變的簡(jiǎn)單了。
最近在研究自己愛(ài)圍脖的時(shí)候就要計(jì)算到戀愛(ài)天數(shù),這需要php根據(jù)每天的日期進(jìn)行計(jì)算,下面就來(lái)談?wù)剬?shí)現(xiàn)這種日期計(jì)算的幾種方法:
(1) 如果有數(shù)據(jù)庫(kù)就很容易了!若是MSSQL可以使用觸發(fā)器!用專(zhuān)門(mén)計(jì)算日期差的函數(shù)datediff()便可!若是MYSQL那就用兩個(gè)日期字段的差值計(jì)算的計(jì)算結(jié)果保存在另一個(gè)數(shù)值型字段中!用時(shí)調(diào)用便可!
(2)如果沒(méi)有數(shù)據(jù)庫(kù),那就得完全用php的時(shí)間日期函數(shù)!
下面主要說(shuō)明之:
例:計(jì)算1998年5月3日到1999-6-5的天數(shù):
復(fù)制代碼 代碼如下:
$startdate=mktime("0","0","0","5","3","1998"); $enddate=mktime("0","0","0","6","5","1999"); //所得到的值為從1970-1-1到參數(shù)時(shí)間的總秒數(shù)結(jié)果是整數(shù).那么下面的代碼就好編多了
$days=round(($enddate-$startdate)/3600/24) ;
echo $days;
其中$days為得到的天數(shù);
若mktime()中的參數(shù)缺省,那表示使用當(dāng)前日期,這樣便可計(jì)算從借書(shū)日期至今的天數(shù)。
最后說(shuō)一下SQL的計(jì)算方法:
DateDiff 函數(shù)
描述:返回兩個(gè)日期之間的時(shí)間間隔。
語(yǔ)法:
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必選。字符串表達(dá)式,表示用于計(jì)算 date1 和 date2 之間的時(shí)間間隔。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
date1, date2: 必選。日期表達(dá)式。用于計(jì)算的兩個(gè)日期。
firstdayofweek: 可選。指定星期中第一天的常數(shù)。如果沒(méi)有指定,則默認(rèn)為星期日。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
firstweekofyear: 可選。指定一年中第一周的常數(shù)。如果沒(méi)有指定,則默認(rèn)為 1 月 1 日所在的星期。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
interval 參數(shù)可以有以下值:
yyyy (年)
q (季度)
m (月)
y (一年的日數(shù))
d (日)
w (一周的日數(shù))
ww (周)
h (小時(shí))
n (分鐘)
s (秒)
firstdayofweek 參數(shù)可以有以下值:
(以下分別為:常數(shù) 值 描述)
vbUseSystem 0 使用區(qū)域語(yǔ)言支持 (NLS) API 設(shè)置。
vbSunday 1 星期日(默認(rèn))
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數(shù)可以有以下值:
(以下分別為:常數(shù) 值 描述)
vbUseSystem 0 使用區(qū)域語(yǔ)言支持 (NLS) API 設(shè)置。
vbFirstJan1 1 由 1 月 1 日所在的星期開(kāi)始(默認(rèn))。
vbFirstFourDays 2 由在新年中至少有四天的第一周開(kāi)始。
vbFirstFullWeek 3 由在新的一年中第一個(gè)完整的周開(kāi)始。
說(shuō)明:DateDiff 函數(shù)用于判斷在兩個(gè)日期之間存在的指定時(shí)間間隔的數(shù)目。
例如可以使用 DateDiff 計(jì)算兩個(gè)日期相差的天數(shù),或者當(dāng)天到當(dāng)年最后一天之間的星期數(shù)。
要計(jì)算 date1 和 date2 相差的天數(shù),可以使用“一年的日數(shù)”(“y”)或“日”(“d”)。當(dāng) interval 為“一周的日數(shù)”(“w”)時(shí),DateDiff 返回兩個(gè)日期之間的星期數(shù)。
如果 date1 是星期一,則 DateDiff 計(jì)算到 date2 之前星期一的數(shù)目。此結(jié)果包含 date2 而不包含 date1。
如果 interval 是“周”(“ww”),則 DateDiff 函數(shù)返回日歷表中兩個(gè)日期之間的星期數(shù)。函數(shù)計(jì)算 date1 和 date2 之間星期日的數(shù)目。
如果 date2 是星期日,DateDiff 將計(jì)算 date2,但即使 date1 是星期日,也不會(huì)計(jì)算 date1。
如果 date1 晚于 date2,則 DateDiff 函數(shù)返回負(fù)數(shù)。 firstdayofweek 參數(shù)會(huì)對(duì)使用“w”和“ww”間隔符號(hào)的計(jì)算產(chǎn)生影響。
如果 date1 或 date2 是日期文字,則指定的年度會(huì)成為日期的固定部分。但是如果 date1 或 date2 被包括在引號(hào) (“ ”) 中并且省略年份,則在代碼中每次計(jì)算 date1 或 date2 表達(dá)式時(shí),將插入當(dāng)前年份。這樣就可以編寫(xiě)適用于不同年份的程序代碼。
在 interval 為“年”(“yyyy”)時(shí),比較 12 月 31 日和來(lái)年的 1 月 1 日,雖然實(shí)際上只相差一天,DateDiff 返回 1 表示相差一個(gè)年份。
DatePart 函數(shù)
描述:返回給定日期的指定部分。 語(yǔ)法:
DatePart(interval, date[, firstdayofweek[, firstweekofyear>)
DatePart: 函數(shù)的語(yǔ)法有以下參數(shù):
interval: 必選。字符串表達(dá)式,表示要返回的時(shí)間間隔。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
date: 必選。要計(jì)算的日期表達(dá)式。
firstdayofweek: 可選。指定星期中的第一天的常數(shù)。如果沒(méi)有指定,則默認(rèn)為星期日。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
firstweekofyear: 可選。指定一年中第一周的常數(shù)。如果沒(méi)有指定,則默認(rèn)為 1 月 1 日所在的星期。有關(guān)數(shù)值,請(qǐng)參閱“設(shè)置”部分。
其中interval 參數(shù)可以有以下值: yyyy (年) 、q (季度) 、m (月) 、y (一年的日數(shù)) 、d (日) 、w (一周的日數(shù)) 、ww (周) 、h (小時(shí)) 、n (分鐘) 、s (秒)
其中firstdayofweek 參數(shù)可以有以下值:
(以下分別為:常數(shù) 值 描述)
vbUseSystem 0 使用區(qū)域語(yǔ)言支持 (NLS) API 設(shè)置。
vbSunday 1 星期日(默認(rèn))
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數(shù)可以有以下值:
(以下分別為:常數(shù) 值 描述)
vbUseSystem 0 使用區(qū)域語(yǔ)言支持 (NLS) API 設(shè)置。
vbFirstJan1 1 由 1 月 1 日所在的星期開(kāi)始(默認(rèn))。
vbFirstFourDays 2 由在新年中至少有四天的第一周開(kāi)始。
vbFirstFullWeek 3 由在新的一年中第一個(gè)完整的周(不跨年度)開(kāi)始。
說(shuō)明:DatePart 函數(shù)用于計(jì)算日期并返回指定的時(shí)間間隔。例如使用 DatePart 計(jì)算某一天是星期幾或當(dāng)前的時(shí)間。
其中firstdayofweek 參數(shù)會(huì)影響使用“w”和“ww”間隔符號(hào)的計(jì)算。
如果 date 是日期文字,則指定的年度會(huì)成為日期的固定部分。但是如果 date 被包含在引號(hào) (“ ”) 中,并且省略年份,則在代碼中每次計(jì)算 date 表達(dá)式時(shí),將插入當(dāng)前年份。這樣就可以編寫(xiě)適用于不同年份的程序代碼!
到此,相信大家對(duì)“在php和MySql中計(jì)算時(shí)間差的方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!