您好,登錄后才能下訂單哦!
這篇文章主要介紹php如何實現時間戳轉格式,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
php實現時間戳轉格式的方法:1、通過strtotime獲取指定日期的unix時間戳;2、使用date函數將指定時間戳轉換成系統時間格式即可。
本文操作環境:Windows7系統,PHP7.1版,Dell G3電腦。
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); ?>
需要注意的部分
<一>、PHP時間大的來分有兩種,一是時間戳類型(1228348800),二是正常日期格式(2008-12-4)
<二>、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如何實現時間戳轉格式”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。