在這里我們?nèi)玫綍r(shí)間戳
mktime(hour,minute,second,month,day,year,[is_dst])
其參數(shù)可以從右向左省略,任何省略的參數(shù)都會被設(shè)置成本地日期和時(shí)間的當(dāng)前值。
參數(shù) 描述 hour 可選。規(guī)定小時(shí)。 minute 可選。規(guī)定分鐘。 second 可選。規(guī)定秒。 month 可選。規(guī)定用數(shù)字表示的月。 day 可選。規(guī)定天。 year 可選。規(guī)定年。在某些系統(tǒng)上,合法值介于 1901 – 2038 之間。不過在 PHP教程 5 中已經(jīng)不存在這個(gè)限制了。 is_dst 可選。如果時(shí)間在日光節(jié)約時(shí)間(dst)期間,則設(shè)置為1,否則設(shè)置為0,若未知,則設(shè)置為-1。自 5.1.0 起,is_dst 參數(shù)被廢棄。因此應(yīng)該使用新的時(shí)區(qū)處理特性
在日常生活中我們要經(jīng)常比較時(shí)間的早晚,對于我們來說判斷時(shí)間的大小很簡單。但是時(shí)間的比較不只是單純的數(shù)字大小的比較,因此相對來說還是比較復(fù)雜。那么在php中通過什么方式來比較兩個(gè)時(shí)間的大小呢?
要比較兩個(gè)時(shí)間的大小,我們需要將時(shí)間轉(zhuǎn)化為時(shí)間戳格式,然后再進(jìn)行比較這是最常用的方法。常用到的函數(shù)是:strtotime() 語法格式:strtotime(time,now) 如果time是絕對時(shí)間,則now參數(shù)不起作用 如果time是相對時(shí)間,則相對應(yīng)的參數(shù)則對應(yīng)函數(shù)就是now來提供,如果沒有提供now參數(shù),那么相對應(yīng)的時(shí)間就是當(dāng)前的本地時(shí)間。
實(shí)例:比較兩個(gè)絕對時(shí)間的大小
代碼:<?php $zero1=date(“y-m-d h:i:s”); $zero2=”2010-11-29 21:07:00′;
echo “zero1的時(shí)間為:”.$zero1.”<br>”;
echo “zero2的時(shí)間為:”.$zero2.”<br>”;
if(strtotime($zero1)<strtotime($zero2)){ echo “zero1早于zero2′; }
else{ echo “zero2早于zero1′; } ?>
輸出結(jié)果:
zero1的時(shí)間為:2010-11-30 21:12:55
zero2的時(shí)間為:2010-11-29 21:07:00
zero2早于zero1
注:可以根據(jù)實(shí)例發(fā)散思維
計(jì)算兩個(gè)日期的差值 奧運(yùn)會倒計(jì)時(shí),亞運(yùn)會倒計(jì)時(shí),生日倒計(jì)時(shí)這些倒計(jì)時(shí)都可以通過計(jì)算兩個(gè)日期的差值來實(shí)現(xiàn),同樣需要用到strottime()函數(shù)。 實(shí)現(xiàn)倒計(jì)時(shí)需要將兩個(gè)時(shí)間的差值整數(shù)化,需要用到函數(shù)ceil() ceil()函數(shù)的作用是求不小于給定實(shí)數(shù)的最小整數(shù)
實(shí)例:倒計(jì)時(shí)小程序
實(shí)例代碼:<?php $zero1=strtotime (date(“y-m-d h:i:s”));
當(dāng)前時(shí)間 $zero2=strtotime (“2011-2-03 24:00:00′);
過年時(shí)間 $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
echo “離過年還有<strong>$guonian</strong>天!”; ?>
輸出結(jié)果: 離過年還有66天!
strtotime()函數(shù)解析
定義和用法 strtotime() 函數(shù)將任何英文文本的日期時(shí)間描述解析為 unix 時(shí)間戳。
語法 strtotime(time,now)參數(shù) 描述 time 規(guī)定要解析的時(shí)間字符串。 now 用來計(jì)算返回值的時(shí)間戳。如果省略該參數(shù),則使用當(dāng)前時(shí)間。
說明 該函數(shù)預(yù)期接受一個(gè)包含美國英語日期格式的字符串并嘗試將其解析為 unix 時(shí)間戳(自 january 1 1970 00:00:00 gmt 起的秒數(shù)),其值相對于 now 參數(shù)給出的時(shí)間,如果沒有提供此參數(shù),則用系統(tǒng)當(dāng)前時(shí)間