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
、
、
答案會公布在評論區祝大家學習愉快