php獲取本地化時間戳函數(shù)
在實際的工作中我們還需要經(jīng)常用到指定某個時間生成。
例如:需要找到昨天到今天此時此刻的注冊用戶。
那么我們需要做兩件事情:
1.得到當(dāng)前的時間unix時間戳。用time()函數(shù)就可以直接搞定
2.那么昨天指定時間該怎么生成呢。這個時候我們就需要使用到mktime()函數(shù)。簡稱:make time.創(chuàng)建時間。
生成出來的時間最好是unix時間戳。因為是1970年1月1日0時到現(xiàn)在的時間。我們做一個區(qū)間判斷,就把昨天到今天注冊的用戶按照時間篩選出來了。
我們的mktime()函數(shù)可以對一個日期和時間獲得一個本地化時間戳。其語法格式如下所示:
int mktime (int $hour [, int $minute [, int $second [, int $month [, int $day [. int$year [, int $.is_dstl.l } ] ] 31 )
函數(shù)的參數(shù)分別表示:時、分、秒、月、日、年、是否為夏令時。在使用這個函數(shù)時,需要注意所列的參數(shù)要與函數(shù)的參數(shù)含義相同。例如,下面的代碼實現(xiàn)了用mktime構(gòu)造一個時間戳的功能。
<?php echo mktime (13 ,15 , 30, 8,18, 2008) ; ?>
運行程序結(jié)果如下所示:
1219036530
mktime函數(shù)的返回結(jié)果是一個Unix時間戳,對用戶的含義不大,常常與date函數(shù)一起完成時間的轉(zhuǎn)換。
例如,下面的代碼實現(xiàn)對時間的運算:
<?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"; ?>
我們使用的時候還經(jīng)常需要使用到另外一個函數(shù):strtotime()。
它的語法格式如下:
int strtotime ( string $time [, int $now = time() ] )
它能將將英文文本的日期時間描述解析為 Unix 時間戳。
參數(shù):
1.傳入一個字符串的時間
2.可選參數(shù)為是否傳入unix時間戳,如果不傳則是當(dāng)前的unix時間戳。
我們來實驗一下,看看手冊中提供的一些例子:
<?php //now為現(xiàn)在的當(dāng)前時間 echo strtotime("now")."<br />"; //2000年9月10日 echo strtotime("10 September 2000")."<br />"; //當(dāng)前時間加一天 echo strtotime("+1 day")."<br />"; //當(dāng)前時間加一周 echo strtotime("+1 week")."<br />"; //當(dāng)前時間加一周2天4小時2秒 echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br />"; //下一個星期四 echo strtotime("next Thursday")."<br />"; //上一個星期一 echo strtotime("last Monday")."<br />"; ?>
通過上例發(fā)現(xiàn),把一些時間通通加上了或者減去了英文中所表示的指定時間段。