PHP date() 函數用於格式化時間/日期。
PHP 時間戳
UNIX 時間戳記(timestamp)是PHP 中關於時間日期一個很重要的概念,它表示從1970年1月1日00: 00:00 到目前時間的秒數總和。
PHP提供了內建函數 time() 來取得伺服器目前時間的時間戳記。
範例:
<?php echo time(); ?>
上面的範例運行後得到的是一串類似這樣的數字:1379115455
有效的時間戳典型範圍是格林威治時間1901年12月13日20:45:54 到2038年1月19日03:14:07(此範圍符合32 位元有符號整數的最小值和最大值)。 不過從 5.1.0 起,已經克服了年份的範圍只能是 1901 到 2038 之間的問題。
提示
1. time() 得到的總是當前的時間戳,所以是不固定的值
2. 如果時間戳為負數,則為從1970年1月1日00:00:00往前推
日期轉換為時間戳
PHP 提供了函數可以方便的將各種形式的日期轉換為時間戳,該類別函數主要是:
• strtotime():將任何英文文字的日期時間描述解析為時間戳記。
• mktime():從日期取得時間戳記。
strtotime() 函數用於將英文文字字串表示的日期轉換為時間戳,為 date() 的反函數,成功傳回時間戳,否則傳回 FALSE 。
語法:
int strtotime ( string time [, int now] )
參數time 為被解析的字串,是根據GNU 日期輸入格式表示的日期。
<?php echo strtotime("2009-10-21 16:00:10"); //输出类似 1256112010 echo strtotime("10 September 2008"); //输出类似 1220976000 echo strtotime("+1 day"), "<br />"; //输出明天此时的时间戳 ?>
mktime() 函數用於從日期取得時間戳,成功傳回時間戳,否則傳回 FALSE 。
語法:
int mktime(時, 分, 秒, 月, 日, 年)
範例:
<?php echo mktime(21, 50, 55, 07, 14, 2010); //输出“1279115455” ?>
參數可以從右向左省略,任何省略的參數會被設定成本地日期和時間的目前值。
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() 函數
PHP date() 函數可把時間戳格式化為可讀性較好的日期和時間。
時間戳記是一個字元序列,表示一定的事件發生的日期/時間。
語法
string date ( string $format [, int $timestamp ] )
參數 描述
format 必要。規定時間戳記的格式。
timestamp 選購。規定時間戳。預設是當前的日期和時間。
PHP Date() - 格式化日期
date() 函數的第一個必要參數 format 規定如何格式化日期/時間。
這裡列出了一些可用的字元:
d - 代表月中的天(01 - 31)
m - 代表月(01 - 12)
Y - 代表年(四位數)
如需了解 format 參數中可用的所有字元列表,請查閱我們的PHP Date 參考手冊, date() 函數。
可以在字母之間插入其他字符,例如"/"、"." 或"-",這樣就可以增加附加格式了:
<?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>##卷##後面還有幾個參數:
h 的英文為:hour 代表小時
<?php //就可以显示出来当前的时间了哟。 echo date('Y-m-d H:i:s'); ?>格式字串可以辨識以下 format 參數的字串##format字元 說明 返回數值範例
日 --- ---
D 星期中的第幾天,文字表示,3 個字母 Mon Sun 導 1 到 31
l("L"的小寫字母) 星期幾,完整的文字格式 Sunday 到 Saturday
N ISO-8601 格式數字表示的星期中的第幾天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期日)
S 每月天數後面的英文後綴,2 個字元 st,nd,rd 或 th。可以和 j 一起用
w 星期中的第幾天,數字表示 0(表示星期日)到星期日 6(表示星期六# 0 至 365
星期 --- ---
W ISO-8601 格式年份中的第幾週,每週從星期一開始(PHP 4.1.0 新加的) 例如:42(當年的第42 週)
月 --- ---
F 月份,完整的文字格式, ecember
m 數字表示的月份,有前導零 01 到 12
M 三字母為
n 數位表示的月份,沒有前導零 1 到 12
t 給定月份所應有的天數 28 到 31
8601 格式年份數字。這和 Y 的值相同,只除瞭如果 ISO 的星期數(W)屬於前一年或下一年,則用那一年。 (PHP 5.1.0 新加) Examples: 1999 or 2003 Y 4 位數位完整表示的年份 y 2 位數表示的年份 時間 --- ---#
a 小寫的上午和下午值 am 或 pm
A 大寫的上午和下午值 AM 或 PM
B Swatch Internet 標準時 000 到 999
g 小時,12 小時格式,無前導零 1 到 12
G 小時,24 小時格式,無前導 小時,12 小時格式,有前導零 01 到 12
H 小時,24 小時格式,有前導零 00 到 23
## 00 到 59> s 秒數,有前導零 00 到59> u 毫秒(PHP 5.2.2 新加)。要注意的是 date()函數總是回傳 000000 因為它只接受 integer 參數,而 DateTime::format() 才支援毫秒。 範例: 654321 時區 --- --- e 時區識別(PHP 5.1.0 新加) 對為夏令時 若是夏令時為 1,否則為 0 O 與格林威治時間相差的小時數 例如:+0200 #P 對 與休格林威治(GMT)的差異點格林威治標準,小時和分鐘之間有冒號分隔(PHP 5.1.3 新加) 例如:+02:00 T 本機所在的時區 例如:EST,MDT(【者註」在Windows 下為完整文字格式,例如"Eastern Standard Time",中文版會顯示"中國標準時間")。 Z 時差偏移量的秒數。 UTC 西邊的時區偏移總是負的,UTC 東邊的時區偏移量總是正的。 -43200 到 43200 #完整的日期/時間 --- ---
c ISO 8601 格式的日期(PHP 5 新加) 2004-02-12T15:19:21+0:00 #r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200
U 從Unix 紀元(January 1 197:00:0 )
完整的PHP Date 參考手冊
如需查看所有日期函數的完整參考手冊,請造訪我們的 完整的PHP Date 參考手冊。
此參考手冊提供了每個函數的簡要描述和應用實例!