天天看点

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