php實作時間戳記格式的方法:1、透過strtotime取得指定日期的unix時間戳記;2、使用date函數將指定時間戳記轉換成系統時間格式即可。
本文操作環境:Windows7系統,PHP7.1版,Dell G3電腦。
php 怎麼實作時間戳轉格式?
php中時間戳與日期格式的轉換
一,PHP時間戳函數取得指定日期的unix時間戳strtotime(”2009-1- 22″) 範例如下:
echo strtotime(”2009-1-22″) 结果:1232553600
說明:傳回2009年1月22日0點0分0秒時間戳記
二,PHP時間戳記函數取得英文文字日期時間範例如下:
方便比較,使用date將當時間戳記與指定時間戳記轉換成系統時間
(1)列印明天此時的時間戳strtotime(” 1 day”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(”Y-m-d H:i :s”,strtotime(” 1 day”)) 結果:2009-01-23 09:40:25
(2)列印昨天此時的時間戳strtotime(”-1 day”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(”Y-m-d H :i:s”,strtotime(”-1 day”)) 結果:2009-01-21 09:40:25
(3)列印下個星期此時的時間戳strtotime(” 1 week ”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
指定時間:echo date (”Y-m-d H:i:s”,strtotime(” 1 week”)) 結果:2009-01-29 09:40:25
(4)列印上星期此時的時間戳strtotime( ”-1 week”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
#指定時間:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 結果:2009-01-15 09:40:25
(5)列印指定下週幾的時間戳strtotime(”next Thursday”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 結果:2009-01-29 00:00:00
(6)列印指定上星期幾的時間戳strtotime(”last Thursday”)
目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2009-01-22 09:40:25
指定時間:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 結果:2009-01-15 00:00:00
以上PHP時間戳函數範例可知,strtotime能將任何英文文本的日期時間描述解析為Unix時間戳,我們結合mktime()或date()格式化日期時間取得指定的時間戳,實現所需的日期時間。
範例:
<?php //时间戳转日期 $date_time_array = getdate(1297845628); //1311177600 1316865566 $hours = $date_time_array["hours"]; $minutes = $date_time_array["minutes"]; $seconds = $date_time_array["seconds"]; $month = $date_time_array["mon"]; $day = $date_time_array["mday"]; $year = $date_time_array["year"]; echo "year:$year\nmonth:$month\nday:$day\nhour:$hours\nminutes:$minutes\nseconds:$seconds\n"; //正常日期转时间戳 echo mktime(0, 0, 0, 9, 18, 2011) . "\n"; echo mktime(0, 0, 0, 9, 25, 2011) . "\n"; //可以对此进行格式化 echo "time()显示年月日时分秒:" . date("Y-m-d H:i:s", time()) . "\n"; //这样连时,分秒一起显示 echo "time()只显示年月日:" . date("Y-m-d ", time()) . "\n"; //只年示年月日 echo "时间戳格式化:" . date("Y-m-d H:i:s", 1297845628) . "\n"; //直接使用时间戳 //把正常日期转成时间戳了,这里如果有时分秒也是同理, $year=((int)substr("2008-12-04",0,4));//取得年份 $month=((int)substr("2008-12-04",5,2));//取得月份 $day=((int)substr("2008-12-04",8,2));//取得几号 echo mktime(0,0,0,$month,$day,$year); ?>
需要注意的部分
6435eeebd2f19b916bfdcb501758e943、PHP時間大的來分有兩種,一是時間戳類型(1228348800),二是正常日期格式(2008-12-4)
77d226c7a2080f1d99ea5951bd228e92、php5.1以上時間戳記會與實際時間相差8小時,解決方法如下
1、最簡單的方法就是不要用php5.1以上的版本--顯然這是不可取的方法! ! !
2、修改php.ini。打開php.ini查找date.timezone 去掉前面的分號= 後面加Asia/Shanghai,重啟apache伺服器即可--缺點就是如果程式放到別人的伺服器上,不能修改php.ini,那就奈何不得了。
3、在程式中加入時間的初始化的語句的 即:「date_default_timezone_set("Asia/Shanghai"); 」這個可以由程式設計師任意設置,我的推薦。
時區標識符,大陸內地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為中國,重慶,上海,烏魯木齊) ,Etc/GMT-8,Asia/ Harbin
港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依序為澳門,香港,台北)
還有新加坡:Asia/Singapore
這樣就可以實現輸出的是北京時間了
推薦學習:《PHP影片教學》
以上是php 怎麼實作時間戳轉格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!