天天看點

PHP中顯示本地時間

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