天天看點

PHP時間戳

PHP時間戳

UNIX 時間戳(timestamp)是 PHP 中關于時間日期一個很重要的概念,它表示從 1970年1月1日 00:00:00

到目前時間的秒數之和。

PHP提供了内置函數 time() 來取得伺服器目前時間的時間戳。

例如:

<?php
echo time();
?>           

複制

上面的例子運作後得到的是一串類似這樣的數字:1279115455

我們可以通過 date() 等函數将它格式化為我們需要的時間日期格式。

有效的時間戳典型範圍是格林威治時間 1901年12月13日 20:45:54 到 2038年1月19日 03:14:07(此範圍符合 32

位有符号整數的最小值和最大值)。不過從 5.1.0 起,已經克服了年的範圍隻能是 1901 到 2038 之間的問題。

格式化時間

date() 函數用于格式化時間,傳回一個字元串。

文法:

string date ( string format [, int timestamp])           

複制

參數format表示時間格式化的方式,可能的方式如下:

格式化方式 說明
Y 4位數字年,y為2位數字,如99即1999年
m 數字月份,前面有前導0,如01,n為無前導0數字月份
F 月份,完整的文本格式,例如January或者March
M 三個字母縮寫表示的月份,例如Jan或者Mar
d 月份中的第幾天,前面有前導0,如03,j為無前導0的天數
w 星期中的第幾天,以數字表示,0表示星期天
z 年份中的第幾天,範圍0-366
W 年份中的第幾周,如第32周
H 24小時格式,有前導0,h為12小時格式
G 24小時格式,無前導0,g為對應12小時格式
i 分鐘格式,有前導0
s 秒格式,有前導0
A 大寫上下午,如AM,a為小寫

可選參數 timestamp 表示時間戳,預設為 time() ,即目前時間戳。

我們可以通過 date() 函數提供的豐富格式化來顯示需要的時間日期,如下面的例子:

date(“Y-m-d”,time()); //顯示格式如 2008-12-01

date(“Y.m.d”,time()); //顯示格式如 2008.12.01

date(“M d Y”,time()); //顯示格式如 Dec 01 2008

date(“Y-m-d H:i”,time()); //顯示格式如 2008-12-01 12:01

提示

如果您輸出的時間和實際時間差8個小時(假設您采用的北京時區)的話,請檢查php.ini檔案,做如下設定:

date.timezone = PRC

案例

計算兩個時間差

$d1 = strtotime('2016-7-8');
 $d2 = strtotime('2016-7-1');
 echo ($d1-$d2)/60/60/24;           

複制

習題:

如果在3分鐘以内,傳回:剛剛

如果在30天以内,傳回:若幹分鐘前、若幹小時前、若幹天前,

如:5分鐘前

如果在30天以上,傳回:日期字元,如:2017-01-01

答案會公布在評論區祝大家學習愉快