PHP中顯示本地時間
(引用自:http://hi.baidu.com/chaoyisk/blog/item/a88e3ed178ecfcd0572c84d7.html)
如何讓php顯示本地時間2007-09-10 07:53許多程式設計的朋友在使用php中的date()函數時,顯示出來的時間都與本地時間不一樣。那是因為PHP5預設為格林威治時間,與中原標準時間相差8個小時。在php.ini中,将“;date.timezone =”,改成“date.timezone = PRC”,重新開機WEB服務。或在date()函數前加上date_default_timezone_set('PRC');語句。
PHP中其它與時間相關的函數:
mktime -- 取得一個日期的 UNIX 時間戳
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
time -- 傳回目前的 UNIX 時間戳(格林威治時間 1970 年 1 月 1 日 00:00:00)
int time ( void )
date -- 格式化一個本地時間/日期
string date ( string format [, int timestamp] )
format 字元說明
a 小寫的上午和下午值 am 或 pm
A 大寫的上午和下午值 AM 或 PM
d 月份中的第幾天,有前導零的 2 位數字 01 到 31
D 星期中的第幾天,文本表示,3 個字母 Mon 到 Sun
F 月份,完整的文本格式,例如 January 或者 March January 到 December
g 小時,12 小時格式,沒有前導零 1 到 12
G 小時,24 小時格式,沒有前導零 0 到 23
h 小時,12 小時格式,有前導零 01 到 12
H 小時,24 小時格式,有前導零 00 到 23
i 有前導零的分鐘數 00 到 59>
j 月份中的第幾天,沒有前導零 1 到 31
l(“L”的小寫字母) 星期幾,完整的文本格式 Sunday 到 Saturday
m 數字表示的月份,有前導零 01 到 12
M 三個字母縮寫表示的月份 Jan 到 Dec
n 數字表示的月份,沒有前導零 1 到 12
s 秒數,有前導零 00 到 59>
w 星期中的第幾天,數字表示 0(表示星期天)到 6(表示星期六)
Y 4 位數字完整表示的年份 例如:1999 或 2003
y 2 位數字表示的年份 例如:99 或 03
gmmktime -- 取得 GMT 日期的 UNIX 時間戳
int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
和 mktime() 完全一樣,隻除了傳回值是格林威治标準時的時間戳。參數可以從右到左依次空着,空着的參數會被設為相應的目前 GMT 值。
注: 在 Microsoft Windows 系列的作業系統中實作本函數的系統庫是壞的
gmdate -- 格式化一個 GMT/UTC 日期/時間
string gmdate ( string format [, int timestamp] )
同 date() 函數完全一樣,隻除了傳回的時間是格林威治标準時(GMT)。例如當在中國(GMT +0800)運作以下程式時,第一行顯示“Jan 01 2000 00:00:00”而第二行顯示“Dec 31 1999 16:00:00”。
注: 在 Microsoft Windows 系列的作業系統中實作本函數的系統庫是壞的
strftime -- 根據區域設定格式化本地時間/日期
string strftime ( string format [, int timestamp] )
傳回用給定的格式字串對給出的 timestamp 進行格式輸出後的字元串。如果沒有給出時間戳則用目前的本地時間。月份和星期幾以及其它和語言有關的字元串寫法和用 setlocale() 設定的目前的區域有關。
格式字串能識别下列轉換标記:
%a - 目前區域星期幾的簡寫
%A - 目前區域星期幾的全稱
%b - 目前區域月份的簡寫
%B - 目前區域月份的全稱
%c - 目前區域首選的日期時間表達
%C - 世紀值(年份除以 100 後取整,範圍從 00 到 99)
%d - 月份中的第幾天,十進制數字(範圍從 01 到 31)
%D - 和 %m/%d/%y 一樣
%e - 月份中的第幾天,十進制數字,一位的數字前會加上一個空格(範圍從 ' 1' 到 '31')
%g - 和 %G 一樣,但是沒有世紀
%G - 4 位數的年份,符合 ISO 星期數(參見 %V)。和 %V 的格式和值一樣,隻除了如果 ISO 星期數屬于前一年或者後一年,則使用那一年。
%h - 和 %b 一樣
%H - 24 小時制的十進制小時數(範圍從 00 到 23)
%I - 12 小時制的十進制小時數(範圍從 00 到 12)
%j - 年份中的第幾天,十進制數(範圍從 001 到 366)
%m - 十進制月份(範圍從 01 到 12)
%M - 十進制分鐘數
%n - 換行符
%p - 根據給定的時間值為 `am' 或 `pm',或者目前區域設定中的相應字元串
%r - 用 a.m. 和 p.m. 符号的時間
%R - 24 小時符号的時間
%S - 十進制秒數
%t - 制表符
%T - 目前時間,和 %H:%M:%S 一樣
%u - 星期幾的十進制數表達 [1,7],1 表示星期一
%U - 本年的第幾周,從第一周的第一個星期天作為第一天開始
%V - 本年第幾周的 ISO 8601:1988 格式,範圍從 01 到 53,第 1 周是本年第一個至少還有 4 天的星期,星期一作為每周的第一天。(用 %G 或者 %g 作為指定時間戳相應周數的年份組成。)
%W - 本年的第幾周數,從第一周的第一個星期一作為第一天開始
%w - 星期中的第幾天,星期天為 0
%x - 目前區域首選的時間表示法,不包括時間
%X - 目前區域首選的時間表示法,不包括日期
%y - 沒有世紀數的十進制年份(範圍從 00 到 99)
%Y - 包括世紀數的十進制年份
%Z - 時區名或縮寫
%% - 文字上的 `%' 字元
gmstrftime -- 根據區域設定格式化 GMT/UTC 時間/日期
string gmstrftime ( string format [, int timestamp] )
和 strftime() 的行為相同,隻除了傳回時間是格林威治标準時(GMT)。
strtotime -- 将任何英文文本的日期時間描述解析為 UNIX 時間戳
int strtotime ( string time [, int now] )
本函數預期接受一個包含英文日期格式的字元串并嘗試将其解析為 UNIX 時間戳。如果 time 的格式是絕對時間則 now 參數不起作用。如果 time 的格式是相對時間則其所相對的時間由 now 提供,或者如果未提供 now 參數時用目前時間。失敗時傳回 -1