1.基礎(chǔ)時(shí)間日期函數(shù)介紹:
date_default_timezone_set("Asia/Hong-Kong"); //設(shè)置時(shí)區(qū)
mktime();//根據(jù)給出的參數(shù)返回UNIX時(shí)間戳,省略參數(shù)則默認(rèn)本地日期和時(shí)間
time();//獲取當(dāng)前的UNIX時(shí)間戳
date();//獲取當(dāng)前的日期和時(shí)間
//默認(rèn)參數(shù)有 DATE_ATOM DATE_COOKIE DATE_W3C
getdate();//獲取日期指定部分的信息 例如 seconds minutes hours year
microtime();//返回當(dāng)前UNIX時(shí)間戳sec和微妙數(shù)msec
strtotime();//將任何日期和時(shí)間轉(zhuǎn)換為時(shí)間戳
setlocale();//改變PHP默認(rèn)的本地化環(huán)境 參數(shù) LC_ALL
2.time(),date(),microtime()三者的區(qū)別
time()返回當(dāng)前的unix時(shí)間戳
date()格式化一個(gè)本地時(shí)間/日期
microtime()返回當(dāng)前unix時(shí)間戳和微秒數(shù)
區(qū)別一在無(wú)任何參數(shù)時(shí),
(1)microtime()返回的結(jié)果是以 "msec sec" 的格式返回一個(gè)字符串,其中 sec(時(shí)間戳) 是自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),msec 是微秒部分。microtime(true)返回的值是sec+msec的和,保留四位小數(shù)。microtime()返回值類型是string(21),microtime(true)返回值類型是float。
(2)date()是默認(rèn)時(shí)間是time()。
(3)time()是自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),值與micrtime()的sec值一致。
區(qū)別二
microtime()與time()應(yīng)用上也有不同。time()通過(guò)date()的格式化,其值是系統(tǒng)當(dāng)前的時(shí)間。microtime()則多用來(lái)隨機(jī)數(shù)函數(shù)mt_rand()|random_init()的初始化工作的一部分,給隨機(jī)數(shù)發(fā)生器播種。
echo number_format(microtime(true),'2');
3.date($format)用法比如:
echo date('Y-m-d') ,輸出結(jié)果:2012-03-22
echo date('Y-m-d H:i:s'),輸出結(jié)果:2012-03-2223:00:00
echo date('Y-m-d', time()),輸出結(jié)果:2012-03-22 23:00:00(結(jié)果同上,只是多了一個(gè)[時(shí)間戳]
echo date('Y').'年'.date('m').'月'.date('d').'日',輸出結(jié)果:2012年3月22日
/**************格式中可使用字母的含義**************/
d - 一個(gè)月中的第幾天(從 01 到 31)
l('L' 的小寫(xiě)形式)- 星期幾的完整的文本表示
w - 星期幾的數(shù)字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
m - 月份的數(shù)字表示(從 01 到 12)
Y - 年份的四位數(shù)表示
y - 年份的兩位數(shù)表示
a - 小寫(xiě)形式表示:am 或 pm
A - 大寫(xiě)形式表示:AM 或 PM
h - 12 小時(shí)制,帶前導(dǎo)零(01 到 12)
H - 24 小時(shí)制,帶前導(dǎo)零(00 到 23)
i - 分,帶前導(dǎo)零(00 到 59)
s - 秒,帶前導(dǎo)零(00 到 59)
n - 月份的整數(shù)形式(1-12)
4.strtotime($time)用法比如:
echo strtotime('2012-03-22'),輸出結(jié)果:1332427715(此處結(jié)果為隨便寫(xiě)的,僅作說(shuō)明使用)
echo strtotime(date('Y-d-m')),輸出結(jié)果:(結(jié)合date(),結(jié)果同上)
echo strtotime("now");
echo strtotime("next Thursday");
echo strtotime("now");//相當(dāng)于將英文單詞now直接等于現(xiàn)在的日期和時(shí)間,并把這個(gè)日期時(shí)間轉(zhuǎn)化為unix時(shí)間戳。這個(gè)效果跟echo time();一樣。
echo strtotime("+1 seconds");//相當(dāng)于將現(xiàn)在的日期和時(shí)間加上了1秒,并把這個(gè)日期時(shí)間轉(zhuǎn)化為unix時(shí)間戳。這個(gè)效果跟echo time()+1;一樣。
echo strtotime("+1 day");//相當(dāng)于將現(xiàn)在的日期和時(shí)間加上了1天。
echo strtotime("+1 week");//相當(dāng)于將現(xiàn)在的日期和時(shí)間加上了1周。
echo strtotime("+1 week 3 days 7 hours 5 seconds");//相當(dāng)于將現(xiàn)在的日期和時(shí)間加上了1周3天7小時(shí)5秒。