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