PHP 日期
PHP date() 函數(shù)用于格式化時間/日期。
PHP 時間戳
UNIX 時間戳(timestamp)是 PHP 中關于時間日期一個很重要的概念,它表示從 1970年1月1日 00:00:00 到當前時間的秒數(shù)之和。
PHP提供了內置函數(shù) time() 來取得服務器當前時間的時間戳。
例子:
<?php echo time(); ?>
上面的例子運行后得到的是一串類似這樣的數(shù)字:1379115455
有效的時間戳典型范圍是格林威治時間 1901年12月13日 20:45:54 到 2038年1月19日 03:14:07(此范圍符合 32 位有符號整數(shù)的最小值和最大值)。 不過從 5.1.0 起,已經克服了年的范圍只能是 1901 到 2038 之間的問題。
提示
1. time() 得到的總是當前的時間戳,所以是不固定的值
2. 如果時間戳為負數(shù),則為從1970年1月1日 00:00:00往前推
日期轉換為時間戳
PHP 提供了函數(shù)可以方便的將各種形式的日期轉換為時間戳,該類函數(shù)主要是:
? strtotime():將任何英文文本的日期時間描述解析為時間戳。
? mktime():從日期取得時間戳。
strtotime() 函數(shù)用于將英文文本字符串表示的日期轉換為時間戳,為 date() 的反函數(shù),成功返回時間戳,否則返回 FALSE 。
語法:
int strtotime ( string time [, int now] )
參數(shù) time 為被解析的字符串,是根據 GNU 日期輸入格式表示的日期。
<?php echo strtotime("2009-10-21 16:00:10"); //輸出類似 1256112010 echo strtotime("10 September 2008"); //輸出類似 1220976000 echo strtotime("+1 day"), "<br />"; //輸出明天此時的時間戳 ?>
mktime() 函數(shù)用于從日期取得時間戳,成功返回時間戳,否則返回 FALSE 。
語法:
int mktime(時, 分, 秒, 月, 日, 年)
例子:
<?php echo mktime(21, 50, 55, 07, 14, 2010); //輸出“1279115455” ?>
參數(shù)可以從右向左省略,任何省略的參數(shù)會被設置成本地日期和時間的當前值。
mktime() 在做日期計算和驗證方面很有用,它會自動計算超出范圍的輸入的正確值。例如下面例子輸出的都是 2008-01-01:
<?php echo date("Y-m-d", mktime(0, 0, 0, 12, 32, 2007)); echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2007)); ?>
下個月的最后一天:
任何給定月份的最后一天都可以被表示為下個月的第 "0" 天,而不是 -1 天,如下面的例子:
<?php $lastday = mktime(0, 0, 0, 3, 0, 2008); echo strftime("2008年最后一天是:%d", $lastday); ?>
瀏覽器輸出:
2008年最后一天是:29
PHP date() 函數(shù)
PHP date() 函數(shù)可把時間戳格式化為可讀性更好的日期和時間。
時間戳是一個字符序列,表示一定的事件發(fā)生的日期/時間。
語法
string date ( string $format [, int $timestamp ] )
參數(shù) 描述
format 必需。規(guī)定時間戳的格式。
timestamp 可選。規(guī)定時間戳。默認是當前的日期和時間。
PHP Date() - 格式化日期
date() 函數(shù)的第一個必需參數(shù) format 規(guī)定了如何格式化日期/時間。
這里列出了一些可用的字符:
d - 代表月中的天 (01 - 31)
m - 代表月 (01 - 12)
Y - 代表年 (四位數(shù))
如需了解 format 參數(shù)中可用的所有字符列表,請查閱我們的 PHP Date 參考手冊, date() 函數(shù)。
可以在字母之間插入其他字符,比如 "/"、"." 或者 "-",這樣就可以增加附加格式了:
<?php echo date("Y/m/d") . "<br>"; echo date("Y.m.d") . "<br>"; echo date("Y-m-d"); ?>
上面代碼的輸出如下所示:
2016/05/11<br>
2016.05.11<br>
2016-05-11
后面還有幾個參數(shù):
h 的英文為:hour 代表小時
i的英文為:minute 代表分鐘
s的英文為:second 代表秒
寫全了就是:
<?php //就可以顯示出來當前的時間了喲。 echo date('Y-m-d H:i:s'); ?>
格式字串可以識別以下 format 參數(shù)的字符串
format字符 說明 返回值例子
日 --- ---
d 月份中的第幾天,有前導零的 2 位數(shù)字 01 到 31
D 星期中的第幾天,文本表示,3 個字母 Mon 到 Sun
j 月份中的第幾天,沒有前導零 1 到 31
l("L"的小寫字母) 星期幾,完整的文本格式 Sunday 到 Saturday
N ISO-8601 格式數(shù)字表示的星期中的第幾天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天)
S 每月天數(shù)后面的英文后綴,2 個字符 st,nd,rd 或者 th??梢院?nbsp;j 一起用
w 星期中的第幾天,數(shù)字表示 0(表示星期天)到 6(表示星期六)
z 年份中的第幾天 0 到 365
星期 --- ---
W ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的) 例如:42(當年的第 42 周)
月 --- ---
F 月份,完整的文本格式, 例如 January 或者 March January 到 December
m 數(shù)字表示的月份,有前導零 01 到 12
M 三個字母縮寫表示的月份 Jan 到 Dec
n 數(shù)字表示的月份,沒有前導零 1 到 12
t 給定月份所應有的天數(shù) 28 到 31
年 --- ---
L 是否為閏年 如果是閏年為 1,否則為 0
o ISO-8601 格式年份數(shù)字。這和 Y 的值相同,只除了如果 ISO 的星期數(shù)(W)屬于前一年或下一年,則用那一年。(PHP 5.1.0 新加) Examples: 1999 or 2003
Y 4 位數(shù)字完整表示的年份 例如:1999 或 2003
y 2 位數(shù)字表示的年份 例如:99 或 03
時間 --- ---
a 小寫的上午和下午值 am 或 pm
A 大寫的上午和下午值 AM 或 PM
B Swatch Internet 標準時 000 到 999
g 小時,12 小時格式,沒有前導零 1 到 12
G 小時,24 小時格式,沒有前導零 0 到 23
h 小時,12 小時格式,有前導零 01 到 12
H 小時,24 小時格式,有前導零 00 到 23
i 有前導零的分鐘數(shù) 00 到 59>
s 秒數(shù),有前導零 00 到 59>
u 毫秒 (PHP 5.2.2 新加)。需要注意的是 date()函數(shù)總是返回 000000 因為它只接受 integer 參數(shù), 而 DateTime::format() 才支持毫秒。 示例: 654321
時區(qū) --- ---
e 時區(qū)標識(PHP 5.1.0 新加) 例如:UTC,GMT,Atlantic/Azores
I 是否為夏令時 如果是夏令時為 1,否則為 0
O 與格林威治時間相差的小時數(shù) 例如:+0200
P 與格林威治時間(GMT)的差別,小時和分鐘之間有冒號分隔(PHP 5.1.3 新加) 例如:+02:00
T 本機所在的時區(qū) 例如:EST,MDT(【譯者注】在 Windows 下為完整文本格式,例如"Eastern Standard Time",中文版會顯示"中國標準時間")。
Z 時差偏移量的秒數(shù)。UTC 西邊的時區(qū)偏移量總是負的,UTC 東邊的時區(qū)偏移量總是正的。 -43200 到 43200
完整的日期/時間 --- ---
c ISO 8601 格式的日期(PHP 5 新加) 2004-02-12T15:19:21+00:00
r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200
U 從 Unix 紀元(January 1 1970 00:00:00 GMT)開始至今的秒數(shù) 參見 time()
完整的 PHP Date 參考手冊
如需查看所有日期函數(shù)的完整參考手冊,請訪問我們的 完整的 PHP Date 參考手冊。
該參考手冊提供了每個函數(shù)的簡要描述和應用實例!