直接相減是不正確的,你需要這樣來(lái)做:得到目前的日期和時(shí)間
在Unix中,時(shí)間的表示方式為計(jì)算從1970年1月1日零時(shí)起所過(guò)去的秒數(shù),這稱為UNIX 時(shí)間戳(Unix Epoch)。
如果我們有這樣一段的代碼:
- echo time();
- ?>
將返回值958905820,而此時(shí)的時(shí)間為2000年5月21日12時(shí)43分。
你也許會(huì)說(shuō)這相當(dāng)不錯(cuò)。當(dāng)這對(duì)我毫無(wú)幫助,或者只有一點(diǎn)幫助。在PHP中,對(duì)日期處理的函數(shù)都必須用到由time()返回的時(shí)間戳值。同時(shí),由于PHP在Unix和Windows系統(tǒng)中均使用同樣的時(shí)間戳值,這就允許你不需要修改代碼即可在不同的系統(tǒng)間移植。另外的一個(gè)好處是time()函數(shù)返回的是一個(gè)整數(shù),你可以將其作為整數(shù)字段或文本字段存入數(shù)據(jù)庫(kù),而不必使用特別的日期/時(shí)間字段。
你已經(jīng)基本了解了Unix的時(shí)間戳值,現(xiàn)在讓我們來(lái)展示它的實(shí)際用途。改變?nèi)掌陲@示的方式-日期和時(shí)間的顯示形式
PHP提供兩個(gè)辦法來(lái)將Unix的時(shí)間戳值轉(zhuǎn)換成為有用的數(shù)據(jù)。第一個(gè)是date()函數(shù)。這個(gè)函數(shù)有兩個(gè)參數(shù)-第一個(gè)字符串用于設(shè)定你所希望返回的格式,第二個(gè)為Unix的時(shí)間戳值。
格式化字符串通過(guò)一些簡(jiǎn)單的特殊格式化字符來(lái)顯示你所希望看到的格式的日期和時(shí)間。假設(shè)你希望日期以這樣的格式顯示“18h01 Sunday 21 May”。
我們需要對(duì)字符串中的每一部分使用一個(gè)特殊格式化字符,你可以從PHP手冊(cè)中日期和時(shí)間函數(shù)庫(kù)中找到。這樣的特殊格式化字符數(shù)量不少,他們所表示的類似于星期幾、月的英文名、用2位或4位數(shù)表示的年份,是否是上午(AM)或下午(PM)以及其他。對(duì)于這個(gè)例子我們需要的特殊字符為:
'H’ -24 小時(shí)制的小時(shí)
'i’- 分鐘
'l’- 星期幾的英文全名
'd’- 本月的第幾日
'F’- 月份的英文全名
因此我們的格式化字符串為”Hhi l d F”, PHP代碼為:
當(dāng)我們執(zhí)行這段代碼,我們發(fā)現(xiàn)我們所得到的結(jié)果為:180609 Sunday 21 May
- echo date ("Hhi l d F" ,time());
- ?>
這樣的結(jié)果看起來(lái)有些奇怪。讓我們?cè)俨橐幌翽HP手冊(cè),原來(lái)’h’所代表的是12 小時(shí)制的小時(shí)數(shù)。這再次證明了一句真理:“計(jì)算機(jī)只做你所告訴它該做的,而不是你想要它做的”。
新聞熱點(diǎn)
疑難解答