系统时区设置
更改 PHP 语言中的时区设置有两种方法:
(1) 修改 php.ini 文件中的设置,找到[date] 下的“;date.timezon=” 选项,将其修改为“date.timezone=Asia/Hong_Kong”,然后重新启动 apache/ target=_blank class=infotextkey>apache服务器
(2) 在应用程序中,在使用时间日期函数之前添加如下函数:
date_default_timezone_set(timezone);参数 timezone 为 PHP 可识别的时区名称,如果时区名称 PHP 无法识别,则系统采用 UTC 时区。例如:date_default_timezone_set("Asia/Hong_Kong");设置完成后,date()函数便可以正常使用,不会再出现时差问题。
输出格式化的日期和时间
在 PHP 中通过 date()函数获取当前的日期和时间。date()函数的语法如下:date(string format,int timestamp).date()函数将返回的参数 timestamp 按照指定格式而产生的字符串。其中的参数 timestamp 是可选的,如果省略,则使用当前时间。format 参数可以使开发人员按其指定的格式输出日期和时间。
参数 format 的格式化选项
a 小写的上午和下午值,返回值 am 或 pm
A 大写的上午和下午值,返回值 AM 或 PM
B Swatch Internet 标准时间,返回值 000-999
d 月份中的第几天,有前导零的两位数字,返回值 01-31
D 星期中的第几天,文本格式,3个字母,返回值 Mon-Sun
F 月份,完整的文本格式,返回值 January-December
h 小时,12 小时格式,没有前导零,返回值 1-12
H 小时,24 小时格式,没有前导零,返回值 0-24
i 有前导零的分钟数,返回值 00-59
I 判断是否为夏令时,返回值如果是夏令时为 1,否则为 0
j 月份中的第几天,没有前导零,返回值 1-31
l(L的小字) 星期数,完整的文本格式,返回值 Sunday-Saturday
L 判断是否为闰年,返回值如果是闰年为 1,否则为 0
m 数字表示的月份,有前导零,返回值 01-012
M 3个字母缩写表示的月份,返回值 Jan-Dec
n 数字表示的月份,没有前导零,返回值 1-12
O 与格林威治时间相差的小时数,如+0200
r RFC 822格式的日期,如 Thu,21 Dec 2000 16:01:07+0200
s 秒数,有前导零,返回值 00-59
S 每月天数后面的英文后缀,两个字符,如 st、nd、rd或者 th。可以和 j 一起使用
t 指定月份所应有的天数,28-31
T 本机所在的时区
U 从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的妙数
w 星期中的第几天,数字表示,返回值为 0-6
W ISO-8601 格式年份中的第几周,每周从星期一开始
y 两位数字表示的年份,返回值如 88 或 08
Y 4 位数字完整的表示年份,返回值如 1998、2008
z 年份中的第几天,返回值 0-366
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的。UTC 东边的时区偏移量总是正的,返回值-43200-43200
date()函数可以对 format 选项随意地组合。详细的日期及时间:date("Y-m-d H:i:s");
计算两个日期的差值
说明:ceil()函数的格式为 float ceil(float value),该函数为取整函数,返回不小于参数 value 值的最小整数。如果有小数部分,则进一位。应注意该函数的返回类型为 float 型,而不是整型。