PHP学习笔记——日期和时间(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZLANBL085321/article/details/86523140

1、获取指定日期的时间戳
int mktime ([ int hour = date(“H”) [, int minute = date(“i”) [, int second = date(“s”) [, int month = date(“n”) [, int day = date(“j”) [, int year = date(“Y”) [, int is_dst = -1 ]]]]]]] )
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
参数year是年份数,可以是两位或四位数字,0-69 对应于 2000-2069,70-100 对应于 1970-2000。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下,year 的合法范围是 1901 到 2038 之间,不过此限制自 PHP 5.1.0 起已被克服了。
参数is_dst可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。如果未知,PHP 会尝试自己搞明白。这可能产生不可预知(但并非不正确)的结果。如果 PHP 运行的系统中启用了 DST 或者 is_dst 设为 1,某些时间是无效的。例如 DST 自 2:00 生效,则所有处于 2:00 到 3:00 之间的时间都无效,mktime() 会返回一个未定义(通常为负)的值。某些系统(例如 Solaris 8)的 DST 在午夜生效,则 DST 生效当天的 0:30 会被计算为前一天的 23:30。
mktime() 根据给出的参数返回 Unix 时间戳。如果参数非法,本函数返回 FALSE(在 PHP 5.1 之前返回 -1)。

2、获取当前时间戳
int time ( void )
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。 注意,自 PHP 5.1 起在 $_SERVER[‘REQUEST_TIME’] 中保存了发起该请求时刻的时间戳。

3、获取当前 Unix 时间戳和微秒数
mixed microtime ([ bool get_as_float ] )
返回当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。 如果调用时不带可选参数,本函数以 “msec sec” 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。注意, get_as_float 参数是 PHP 5.0.0 新加的。

4、获取本地时间
array localtime ([ int timestamp = time() [, bool is_associative = false ]] )
可选的 timestamp 参数是一个 integer 的 Unix 时间戳,如未指定,参数值默认为当前本地时间。也就是说,其值默认为 time() 的返回值。
参数 is_associative如果设为 FALSE 或未提供则返回的是普通的数字索引数组。如果该参数设为 TRUE 则 localtime() 函数返回包含有所有从 C 的 localtime 函数调用所返回的不同单元的关联数组。关联数组中不同的键名为:
“tm_sec” - 秒数, 0 到 59
“tm_min” - 分钟数, 0 到 59
“tm_hour” - 小时, 0 到 23
“tm_mday” - 月份中的第几日, 1 到 31
“tm_mon” - 年份中的第几个月, 0 (Jan) 到 11 (Dec)
“tm_year” - 年份,从 1900 开始
“tm_wday” - 星期中的第几天, 0 (Sun) 到 6 (Sat)
“tm_yday” - 一年中的第几天, 0 到 365
“tm_isdst” - 夏令时当前是否生效? 如果是生效的是正数, 0 代表未生效,负数代表未知。

5、获取日期/时间信息
array getdate ([ int timestamp = time() ] )
可选的 timestamp 参数是一个 integer 的 Unix 时间戳,如未指定,参数值默认为当前本地时间。也就是说,其值默认为 time() 的返回值。
返回一个根据 timestamp 得出的包含有日期信息的关联数组 array。如果没有给出时间戳则认为是当前本地时间。返回的关联数组中的键名单元有以下几个:
“seconds” - 秒数, 0 到 59
“minutes” - 分钟数, 0 到 59
“hours” - 小时, 0 到 23
“mday” - 月份中的第几日, 1 到 31
“wday” - 星期中的第几天, 0 (Sun) 到 6 (Sat)
“mon” - 月份的数字表示 ,1 到 12
“year” - 4 位数字表示的完整年份 ,比如: 1999 或 2003
“yday” - 一年中的第几天, 0 到 365
“weekday” - 星期几的完整文本表示 ,Sunday 到 Saturday
“month” - 月份的完整文本表示 ,January 到 December
0 - 自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似。系统相关,典型值为从 -2147483648 到 2147483647。

6、将英文文本的日期时间解析为UNIX时间戳
int strtotime ( string time [, int now = time() ] )
本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。
参数time是日期/时间字符串。日期格式如下图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述时间格式如下图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述参数now用来计算返回值的时间戳。
如果参数time的格式是绝对时间,则参数now不起作用;如果参数time的格式是相对时间,其对应的时间就是参数now来提供的,当没有提供参数now时,对应的时间就为当前时间。成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。

7、格式化本地日期和时间
string date ( string format [, int timestamp ] )
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。timestamp 是可选的,默认值为 time()。
参数format指定日期和时间输出的格式,其指定的格式如下图:
在这里插入图片描述

没有更多推荐了,返回首页