首頁 >後端開發 >php教程 >一篇很全的phpcms和php格式化時間戳教學

一篇很全的phpcms和php格式化時間戳教學

小云云
小云云原創
2017-11-11 09:54:131548瀏覽

不管建造一個什麼樣的網站,時間都是必須寫的,那麼關於PHP時間戳程式設計師們掌握多少呢?現在我就跟大家分享一篇關於phpcms和php格式化時間戳記的文章。

用PHPCMS V9 建置站時,常會用到時間標籤,它是通用標籤呼叫-日期時間格式化,適用全站。

一、日期時間格式化顯示:

a\標準型:{date('Y-m-d H:i:s', $rs['inputtime'])} 輸出為:2013 -01-31 13:15:10

b\分割型:{date('Y',$rs[inputtime])}年{date('m',$rs[inputtime])}月{date('d',$rs[inputtime])}日輸出為:2013年01月31日

c\擴展型:

{date('Y',$ inputtime);} 4位元年份輸出為:2013 或2014

{date('y',$inputtime);} 2位元年份輸出為:10 或11

{date(' F',$inputtime);} 英文月份全名輸出為:January 到December

{date('M',$inputtime); } 英文月份縮寫輸出為:Jan 到Dec

# {date('m',$inputtime);} 前導零數字月份輸出為:01 到12

{date('n',$inputtime); } 數字月份輸出為:1 到12

{date('d',$inputtime);} 前導零日期輸出為:01 到31

{date('j',$inputtime);} 日期輸出為:1 到31

{date('l',$inputtime);} 英文星期全名輸出為:Sunday 到Saturday

{date('D',$inputtime);} 英文星期縮寫輸出為:Mon 到Sun

{date('N',$inputtime);} 格式數字星期輸出為:1 到7

{date('Y-m-d H:i:s',$ rs[inputtime]+30*60)} 在取得文章時間後加上一段時間

二、PHP時間戳函數取得指定日期的unix時間戳 

<?php
echo strtotime("2017-6-27");
?>

結果:1498514400

返回2017年6月27日0點0分0秒時間戳

1、PHP時間戳函數取得英文文字日期時間範例如下:

#便於比較,使用date將當時間戳與指定時間戳轉換成系統時間

(1)列印明天此時的時間戳strtotime(”+1 day”)

目前時間:echo date(”Y-m-d H :i:s”,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(”Y-m-d H:i:s”,strtotime(”+1 天” )) 結果:2017-6-27 09:40:25

(2)列印昨天此時的時間戳strtotime(”-1 day”)

目前時間:echo date( ”Y-m-d H:i:s”,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(”Y-m-d H:i:s”,strtotime(”- 1 day”)) 結果:2017-6-27 09:40:25

(3)列印下個星期此時的時間戳strtotime(”+1 week”)

當前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(”Y-m-d H:i:s” ,strtotime(”+1 week”)) 結果:2017-6-27 09:40:25

(4)列印上星期此時的時間戳strtotime(”-1 week”)

目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(”Y-m-d H :i:s”,strtotime(”-1 week”)) 結果:2017-6-27 09:40:25

(5)列印指定下週幾的時間戳strtotime(”next Thursday” )

目前時間:echo date(”Y-m-d H:i:s”,time()) 結果:2017-6-27 09:40:25

#指定時間:echo date( ”Y-m-d H:i:s”,strtotime(”next Thursday”)) 結果:2017-6-27 00:00:00

(6)列印指定上星期幾的時間戳strtotime(”last戳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”)) 結果:2017-6-27 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

文章已經結束了,關於phpcms和php格式化時間戳的知識點相信大家已經有所掌握了吧,希望能幫助大家。

相關推薦:

如何在php中產生毫秒時間戳記

php 時間戳(UNIX)用法詳解

php格式化時間戳顯示友善的時間實現想法及程式碼_php技巧

以上是一篇很全的phpcms和php格式化時間戳教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn