php UNIX時間戳用法詳解
本文實例講述了php UNIX時間戳用法。分享給大家供大家參考,具體如下:
時間戳是文件屬性中的創(chuàng)建、修改、和訪問時間。數(shù)字時間戳服務(wù)是Web網(wǎng)站安全服務(wù)項目之一,能提供電子文件的日期和時間信息的安全保護。
時間戳的優(yōu)點是:
可用變化的加密數(shù)值,防止數(shù)值被竊取后非法重復(fù)利用,起到加密的作用。時間戳主要依賴于時間,在約定的一段時間內(nèi)產(chǎn)生唯一的一個數(shù)值。
UNIX時間戳
在UNIX系統(tǒng)中,日期與時間表示為自1970年1月1日零點起到當(dāng)前時刻的秒數(shù),這種時間被稱為UNIX時間戳,以32位二進制數(shù)表示。在不同的操作系統(tǒng)中均支持這種時間表示方式,同一時間在UNIX和Windows中均以相同的UNIX時間戳表示,所以不需要在不同的系統(tǒng)中進行轉(zhuǎn)換。
目前UNIX時間戳是以32位二進制數(shù)表示,32位二進制數(shù)值范圍為(-2147483648~+2147483647),由于系統(tǒng)不支持負的時間戳,因此,目前UNIX時間戳能表示的最大時間為2038年1月19日3點14分7秒,該時刻的時間戳為2147483647。于該時間后,需要擴展UNIX時間戳的二進制位數(shù)。
PHP獲取指定日期的時間戳
PHP中應(yīng)用mktime()函數(shù)將一個時間轉(zhuǎn)換成為UNIX時間戳值。
語法如下
mktime(hour,minute,second,month,day,year,is_dst)
參數(shù) | 描述 |
---|---|
hour | 可選。規(guī)定小時。 |
minute | 可選。規(guī)定分鐘。 |
second | 可選。規(guī)定秒。 |
month | 可選。規(guī)定用數(shù)字表示的月。 |
day | 可選。規(guī)定天。 |
year | 可選。規(guī)定年。在某些系統(tǒng)上,合法值介于 1901 - 2038 之間。不過在 PHP 5 中已經(jīng)不存在這個限制了。 |
is_dst |
可選。如果時間在日光節(jié)約時間(DST)期間,則設(shè)置為1,否則設(shè)置為0,若未知,則設(shè)置為-1。 自 5.1.0 起,is_dst 參數(shù)被廢棄。因此應(yīng)該使用新的時區(qū)處理特性。 |
例如:
echo "時間戳:".mktime().'<br>';//返回當(dāng)前時間戳 echo "任意日期:".date("Y-m-d",mktime(0,0,0,2,21,1996)).'<br>'; echo "當(dāng)前日期: ".date("Y-m-d",mktime()).'<br>';
運行結(jié)果為:
時間戳:1458979695 任意日期:1996-02-21 當(dāng)前日期: 2016-03-26
獲取當(dāng)前時間戳
PHP通過time()函數(shù)獲取當(dāng)前的UNIX時間戳。
語法如下:
int time(void);
該函數(shù)沒有參數(shù),返回值為UNIX時間戳的整數(shù)值。
例如:
echo time()."<br>";//輸出當(dāng)前時間戳 $nextWeek = time()+(7*24*60*60);//一個星期七天,一天24小時,一個小時60分,一分60秒 echo "Now: ".date("Y-m-d")."<br>"; echo "Next Week: ".date("Y-m-d",$nextWeek);
運行結(jié)果為
1458980073 Now: 2016-03-26 Next Week: 2016-04-02
將英文文本的日期時間描述解析為UNIX時間戳
strtotime() 函數(shù)將任何英文文本的日期時間描述解析為 Unix 時間戳。
語法
strtotime(time,now)
參數(shù) | 描述 |
---|---|
time | 規(guī)定要解析的時間字符串。 |
now | 用來計算返回值的時間戳。如果省略該參數(shù),則使用當(dāng)前時間。 |
例如:
echo(strtotime("now")).'<br>'; echo(strtotime("3 October 2005")).'<br>'; echo(strtotime("+5 hours")).'<br>'; echo(strtotime("+1 week")).'<br>'; echo(strtotime("+1 week 3 days 7 hours 5 seconds")).'<br>'; echo(strtotime("next Monday")).'<br>'; echo(strtotime("last Sunday")).'<br>';
運行結(jié)果為:
1458980310 1128268800 1458998310 1459585110 1459869515 1459094400 1458403200
如果想要查看這個時間戳對應(yīng)的時間,例如:
echo date("Y-m-d H:i:s",strtotime("now")).'<br>'; echo date("Y-m-d H:i:s",strtotime("next Thursday")).'<br>';
運行結(jié)果為:
2016-03-26 16:21:32 2016-03-31 00:00:00
PS:本站還提供了一個Unix時間戳轉(zhuǎn)換工具,包含了各種常見語言針對時間戳的操作方法,提供給大家參考:
Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php正則表達式用法總結(jié)》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- php自定義時間轉(zhuǎn)換函數(shù)示例
- php獲取當(dāng)前月與上個月月初及月末時間戳的方法
- php 計算兩個時間相差的天數(shù)、小時數(shù)、分鐘數(shù)、秒數(shù)詳解及實例代碼
- php 時間time與日期date之間的使用詳解及區(qū)別
- PHP 常用時間函數(shù)資料整理
- PHP獲取當(dāng)前日期和時間及格式化方法參數(shù)
- PHP使用GETDATE獲取當(dāng)前日期時間作為一個關(guān)聯(lián)數(shù)組的方法
- php使用gettimeofday函數(shù)返回當(dāng)前時間并存放在關(guān)聯(lián)數(shù)組里
- php獲取當(dāng)前時間的毫秒數(shù)的方法
- PHP setTime 設(shè)置當(dāng)前時間的代碼
- AJAX 動態(tài)獲取當(dāng)前時間(php)
- php5中date()得出的時間為什么不是當(dāng)前時間的解決方法
- PHP獲取中國時間(上海時區(qū)時間)及美國時間的方法
相關(guān)文章
使用ThinkPHP自帶的Http類下載遠程圖片到本地的實現(xiàn)代碼
Thinkphp是國人開發(fā)一個PHP框架,該框架相比國外的一些框架也毫不遜色。強大的ORM,插件,分組等功能讓人愛不釋手。2011-08-08