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