關於時間的函數:
strftime 根據區域設置格式化本地時間/日期
strptime — 解析由strftime() 生成的日期/時間
setlocale 函數設置地區信息(地域信息)
date_default_timezone_set 如果發覺date函數得出的小時數與實際相差8小時,請加上date_default_timezone_set('Etc/GMT-8');
date — 格式化一個本地時間/日期
gmdate 同date完全一樣— 格式化一個GMT/UTC 日期/時間
mktime — 取得一個日期的Unix 時間戳 mktime(0, 0, 0, 12, 30, 1997)
gmmktime和mktime 完全一樣
strtotime — 將任何英文文本的日期時間描述解析為Unix 時間戳
time — 返回當前的Unix 時間戳
microtime — 返回當前Unix 時間戳和微秒數
getlastmod — 取得目前使用中網頁最後一次更新網頁內容的時間
注意:TimeStamp不是函數是指Unix 時間戳即由1970年01月01日0時0分0秒到此刻的秒數
實際操作案例
$strtime = "2000-02-12 16:20:35";
$array = explode("-",$strtime);
$year = $array[0];
$month = $array[1];
var_dump($array);
$array = explode(":",$array[2]);
$minute = $array[1];
$second = $array[2];
var_dump($array);
$array = explode(" ",$array[0]);
$day = $array[0];
$hour = $array[1];
$timestamp = mktime($hour,$minute,$second,$month,$day,$year);
echo "字符串時間:$strtime<br>";
echo "年:$year<br>";
echo "月:$month<br>";
echo "日:$day<br>";
echo "時:$hour<br>";
echo "分:$minute<br>";
echo "秒:$second<br>";
echo "轉換為timestamp:" . $timestamp . "<br>";
echo "從timestamp轉換回來:" . date("y-m-d h:i:s",$timestamp) . "<br>";
echo "從timestamp轉換回來:" . date("y-m-d h:i:s","1288263141") . "<br>";
header("Content-Type:text/html; charset=utf-8");
echo (strtotime("2010-10-28 10:52:21")). "<br>"; // MySQL格式的字符串轉換成秒數
echo (strtotime("2010-10-01 00:00:00")). "<br>";
$d = date("Y-m-d H:i:s", time()); // 秒數轉換成MySQL格式的timestamp
echo $d. "<br>";
結果為:
array
0 => string '2000' (length=4)
1 => string '02' (length=2)
2 => string '12 16:20:35' (length=11)
array
0 => string '12 16' (length=5)
1 => string '20' (length=2)
2 => string '35' (length=2)
字符串時間:2000-02-12 16:20:35
年:2000
月:02
日:12
時:16
分:20
秒:35
轉換為timestamp:950372435
從timestamp轉換回來:00-02-12 04:20:35
從timestamp轉換回來:10-10-28 10:52:21
1288263141
1285891200
2011-10-20 14:48:27
格式化時間函數的常見值
函數date ( string format [, int timestamp])可以格式化日期/時間,參數format是格式化字符串,最常用的值如下:
Y:4 位數字完整表示的年份
y:2位數字表示的年份
m:數字表示的月份
M:三個字母縮寫表示的月份
d:月份中的第幾天
D:星期中的第幾天
h:小時,12 小時格式,有前導零
H:小時,24 小時格式,有前導零
i:有前導零的分鐘數
I:是否為夏令時
s:秒數
S:每月天數後面的英文後綴,2 個字符
w:星期中的第幾天,數字表示
W:ISO-8601 格式年份中的第幾周,每周從星期一開始
l:星期幾,完整的文本格式
L:是否為閏年
g:12 小時格式,沒有前導零
G:24 小時格式,沒有前導零
如果發覺date函數得出的小時數與實際相差8小時,請加上date_default_timezone_set('Etc/GMT-8');
getdate(timestamp) 函數可以取得日期/時間信息。
返回一個根據timestamp 得出的包含有日期信息的結合數組。如果沒有給出時間戳,則認為是當前本地時間。
數組中的單元如下:
鍵名
說明
返回值例子
"seconds"
秒的數字表示
0 到59
"minutes"
分鐘的數字表示
0 到59
"hours"
小時的數字表示
0 到23
"mday"
月份中第幾天的數字表示
1 到31
"wday"
星期中第幾天的數字表示
0(表示星期天)到6(表示星期六)
"mon"
月份的數字表示
1 到12
"year"
4 位數字表示的完整年份
例如:1999 或2003
"yday"
一年中第幾天的數字表示
0 到365
"weekday"
星期幾的完整文本表示
Sunday 到Saturday
"month"
月份的完整文本表示
January 到December
0
自從Unix 紀元開始至今的秒數,和time() 的返回值以及用於date() 的值類似。
系統相關,典型值為從-2147483648 到2147483647。
實例:
//顯示的格式: 年-月-日 小時:分鐘:妙
$showtime=date("Y-m-d H:i:s");
echo '顯示時間的格式為:'.$showtime."<br>";
結果為:
顯示時間的格式為:2011-10-20 14:48:27
本文出自 “php技術” 博客