php取得本地化時間戳函數
在實際的工作中我們還需要常用到指定某個時間產生。
例如:需要找到昨天到今天此時此刻的註冊用戶。
那我們需要做兩件事:
1.得到目前的時間unix時間戳記。用time()函數就可以直接搞定
2.那麼昨天指定時間該怎麼生成。這時候我們就需要使用到mktime()函數。簡稱:make time.創建時間。
產生出來的時間最好是unix時間戳記。因為是1970年1月1日0到現在的時間。我們做一個區間判斷,就把昨天到今天註冊的用戶依照時間篩選出來了。
我們的mktime()函數可以對一個日期和時間獲得一個本地化時間戳記。其語法格式如下:
int mktime (int $hour [, int $minute [, int $second [, int $month [, int $day [. int$year [, int $.is_dstl.l } ] ] 31 )
函數的參數分別表示:時、分、秒、月、日、年、是否為夏令時。在使用這個函數時,需要注意所列的參數要與函數的參數意義相同。例如,下面的程式碼實作了用mktime建構一個時間戳記的功能。
<?php echo mktime (13 ,15 , 30, 8,18, 2008) ; ?>
執行程式結果如下所示:
1219036530
mktime函數的回傳結果是一個Unix時間戳,對使用者的意義不大,常常與date函數一起完成時間的轉換。
例如,下面的程式碼實作對時間的運算:
<?php echo date("m-d-Y h:m:s")."\n"; echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d"),date("Y")))."\n"; echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d")-30,date("Y")))."\n"; ?>
我們使用的時候還常常需要使用到另外一個函數:strtotime()。
它的語法格式如下:
int strtotime ( string $time [, int $now = time() ] )
##它能將將英文文本的日期時間描述解析為Unix 時間戳記。 參數: 1.傳入一個字串的時間 2.可選擇參數為是否傳入unix時間戳,如果不傳則是目前的unix時間戳。 我們來實驗一下,看看手冊中提供的一些例子:<?php //now为现在的当前时间 echo strtotime("now")."<br />"; //2000年9月10日 echo strtotime("10 September 2000")."<br />"; //当前时间加一天 echo strtotime("+1 day")."<br />"; //当前时间加一周 echo strtotime("+1 week")."<br />"; //当前时间加一周2天4小时2秒 echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br />"; //下一个星期四 echo strtotime("next Thursday")."<br />"; //上一个星期一 echo strtotime("last Monday")."<br />"; ?>透過上例發現,把一些時間通通加上了或減去了英文中所表示的指定時間段。