PHP提供了多种获取时间和日期的函数,除了通过time()函数获取当前的UNIX时间戳外,调用getdate()函数确定当前时间,通过gettimeofday()函数获取某一天中的具体时间。此外,在PHP中还可以通过date_sunrise()和date_sunset两个函数,获取某地点某天的日出和日落时间。
①调用getdate()函数取得日期/时间信息
getdate()函数返回一个时间戳组成的关键数组,参数需要一个可选的UNIX时间戳。如果没有给出时间戳,则认为是当前本地时间。总共返回11个数组元素,如下表所示。
如果将“2009年10月1日,07:30:50 EDT”转变为UNIX时间戳1254382250表示,并将其传给getdate()函数,查看各数组元素如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
Array(
[seconds] => 50
[minutes] => 30
[hours] => 7
[mday] => 1
[wday] => 4
//一周中日的数值表示
[mon] => 10
[year] => 2009
[yday] => 273
//一年中日的数值表示
[weekday] => Thursday
//一周中日的完整文本表示
[month] => October
//月份的完整文本表示
[0] => 1254382250
//自从UNIX纪元开始至今的秒数
)
?>
|
②日期和时间格式化输出
当日期和时间需要保存或计算时,应该使用UNIX时间戳作为标准格式,这可以作为一条重要的规则。但UNIX时间戳的格式可读性比较差,所以把时间戳格式化作为可读性更好的日期和时间,或格式化为其他软件需要的格式。在PHP中可以调用date()函数格式化一个本地时间和日期,该函数的原型如下所示:
string date(string format[,int timestamp]) //格式化一个本地时间和日期
该函数有两个参数,第一个参数是必须的,规定时间戳的转换格式。第二个参数是可选的,需要提供一个UNIX时间戳。如果没有这个UNIX时间戳,默认值为time()将返回当前时间的日期和时间。该函数将返回一个格式化后表示适当日期的字符串。date()函数的常见调用方式如下所示:
echo date(“Y年m月d日 H:i:s”); //输出当前的时间格式
date()函数中的第一个参数,是通过下表中所提供的特定字符组成的格式化字符串。如果在格式化字符串中的字符前加上反斜杠来转义,可以避免它被按照下表解释。如果加上反斜杠后的字符本身就是一个特殊序列,那么还要转义反斜线。格式字串中不能被识别的字符将原样显示。下表给出PHP中所支持的日期格式代码。
表中包含了可用于data()函数的所有格式化参数,该函数按照这些参数指定的值生成一个字符串表示。要格式化其他语种的日期,应该用setlocale()和strftime()函数来代替date()。