取得當(dāng)前的Unix時(shí)間戳
UNIX 時(shí)間戳(英文叫做:timestamp)是 PHP 中關(guān)于時(shí)間與日期的一個(gè)很重要的概念,它表示從 1970年1月1日 00:00:00 到當(dāng)前時(shí)間的秒數(shù)之和微宝。
PHP提供了內(nèi)置函數(shù) time() 來取得服務(wù)器當(dāng)前時(shí)間的時(shí)間戳嫉嘀。那么獲取當(dāng)前的UNIX時(shí)間戳就很簡(jiǎn)單了奋蔚。
$time = time();
echo $time;//1396193923,這個(gè)數(shù)字表示從1970年1月1日 00:00:00 到我輸出這個(gè)腳本時(shí)經(jīng)歷了1396193923秒
取得當(dāng)前的日期
php內(nèi)置了date()函數(shù),來取得當(dāng)前的日期慢睡。
函數(shù)說明:date(時(shí)間戳的格式, 規(guī)定時(shí)間戳【默認(rèn)是當(dāng)前的日期和時(shí)間枢泰,可選】)
返回值:函數(shù)日期和時(shí)間
//date函數(shù)描融,第二個(gè)參數(shù)取默認(rèn)值的情況
echo date("Y-m-d");//2016-03-24
//date函數(shù),第二個(gè)參數(shù)有值的情況
echo date('Y-m-d','1112223333');//2005-03-31,1112223333表示2005-03-31的unix時(shí)間戳
取得日期的Unix時(shí)間戳
UNIX 時(shí)間戳(英文叫做:timestamp)是 PHP 中關(guān)于時(shí)間與日期的一個(gè)很重要的概念衡蚂,它表示從 1970年1月1日 00:00:00 到當(dāng)前時(shí)間的秒數(shù)之和窿克。
PHP提供了內(nèi)置函數(shù)strtotime實(shí)現(xiàn)功能:獲取某個(gè)日期的時(shí)間戳,或獲取某個(gè)時(shí)間的時(shí)間戳毛甲。例如:
echo strtotime('2014-04-29');//1398700800年叮,這個(gè)數(shù)字表示從1970年1月1日 00:00:00 到2014年4月29號(hào)經(jīng)歷了1398700800秒
echo strtotime('2014-04-29 00:00:01');//1398700801,這個(gè)數(shù)字表示從1970年1月1日 00:00:00 到2014-04-29 00:00:01時(shí)經(jīng)歷了1398700801秒
大家發(fā)現(xiàn)上面的規(guī)律了嗎玻募,其實(shí)strtotime('2014-04-29')相當(dāng)于strtotime('2014-04-29 00:00:00')
<?php
//設(shè)置默認(rèn)時(shí)區(qū)是中國(guó)
date_default_timezone_set("Asia/Shanghai");
//獲取2014-05-01的unix時(shí)間戳
echo strtotime('2014-05-01');
?>
將格式化的日期字符串轉(zhuǎn)換為Unix時(shí)間戳
strtotime函數(shù)預(yù)期接受一個(gè)包含美國(guó)英語日期格式的字符串并嘗試將其解析為 Unix 時(shí)間戳只损。
函數(shù)說明:strtotime(要解析的時(shí)間字符串, 計(jì)算返回值的時(shí)間戳【默認(rèn)是當(dāng)前的時(shí)間,可選】)
返回值:成功則返回時(shí)間戳,否則返回 FALSE
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秒。
將格式化的日期字符串轉(zhuǎn)換為Unix時(shí)間戳
strtotime函數(shù)預(yù)期接受一個(gè)包含美國(guó)英語日期格式的字符串并嘗試將其解析為 Unix 時(shí)間戳拇泣。
函數(shù)說明:strtotime(要解析的時(shí)間字符串, 計(jì)算返回值的時(shí)間戳【默認(rèn)是當(dāng)前的時(shí)間噪叙,可選】)
返回值:成功則返回時(shí)間戳,否則返回 FALSE
格式化格林威治(GMT)標(biāo)準(zhǔn)時(shí)間
gmdate 函數(shù)能格式化一個(gè)GMT的日期和時(shí)間霉翔,返回的是格林威治標(biāo)準(zhǔn)時(shí)(GMT)睁蕾。
舉個(gè)例子,我們現(xiàn)在所在的中國(guó)時(shí)區(qū)是東八區(qū)债朵,領(lǐng)先格林威治時(shí)間8個(gè)小時(shí)子眶,有時(shí)候也叫GMT+8,那么服務(wù)器運(yùn)行以下腳本返回的時(shí)間應(yīng)該是這樣的:當(dāng)前時(shí)間假定是2014-05-01 15:15:22echo date('Y-m-d H:i:s', time()); //輸出為:2014-05-01 15:15:22 echo gmdate('Y-m-d H:i:s', time()); //輸出為:2014-05-01 07:15:22 因?yàn)楦窳滞螘r(shí)間是現(xiàn)在中國(guó)時(shí)區(qū)的時(shí)間減去8個(gè)小時(shí)序芦,所以相對(duì)于現(xiàn)在時(shí)間要少8個(gè)小時(shí)
<?php
//設(shè)置默認(rèn)時(shí)區(qū)是中國(guó)
date_default_timezone_set("Asia/Shanghai");
//返回2014-05-01 12:00:01的格林威治標(biāo)準(zhǔn)時(shí)間
echo gmdate('Y-m-d H:i:s',strtotime('2014-05-01 12:00:01'));
?>