PHP中的日期函数-简化复杂的日期和时间操作
PHP提供了丰富的日期和时间处理函数,可以方便地进行日期和时间的格式化、计算、比较等操作。本文将为大家介绍PHP中常用的日期函数,并说明其用法。
1. date()
date()是PHP中最常用的日期函数,用于将时间戳格式化为指定的日期/时间字符串。其基本语法如下:
string date ( string $format [, int $timestamp = time() ] )
参数说明:
- format:必需。规定日期/时间的格式。
- timestamp:可选。规定日期/时间的时间戳。如果不提供时间戳,则使用当前时间。
例如,将当前时间格式化为“年-月-日 时:分:秒”格式:
echo date("Y-m-d H:i:s");
输出结果:
2022-01-01 00:00:00
2. strtotime()
strtotime()函数用于将任何英文文本的日期或时间描述解析为Unix时间戳(自1970年1月1日以来经过的秒数)。它的语法如下:
int strtotime ( string $time [, int $now = time() ] )
参数说明:
- time:必需。规定待转换的时间。
- now:可选。规定可选的时间戳。如果提供,则作为基准时间。否则将使用当前时间。
例如,将“2022-01-01 00:00:00”格式的字符串转换为时间戳:
echo strtotime("2022-01-01 00:00:00");
输出结果:
ID 1640995200
3. time()
time()函数用于获取当前时间的Unix时间戳。它没有任何参数,其语法如下:
int time ( void )
例如,获取当前时间的时间戳:
echo time();
输出结果:
1646082701
4. mktime()
mktime()函数用于生成给定日期和时间的Unix时间戳。它的语法如下:
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 ]]]]]]] )
参数说明:
- hour:可选。规定小时数(0到23之间的整数)。
- minute:可选。规定分钟数(0到59之间的整数)。
- second:可选。规定秒数(0到59之间的整数)。
- month:可选。规定月份(1到12之间的整数)。
- day:可选。规定日期(1到31之间的整数)。
- year:可选。规定年份(1970到2038之间的整数)。
- is_dst:可选。规定是否为夏令时(默认值为-1,自动判断)。
例如,获取2022年1月1日0时0分0秒的时间戳:
echo mktime(0, 0, 0, 1, 1, 2022);
输出结果:
1640995200
5. strtotime()
strtotime()函数用于将任何英文文本的日期或时间描述解析为Unix时间戳(自1970年1月1日以来经过的秒数)。它的语法如下:
int strtotime ( string $time [, int $now = time() ] )
参数说明:
- time:必需。规定待转换的时间。
- now:可选。规定可选的时间戳。如果提供,则作为基准时间。否则将使用当前时间。
例如,将“2022-01-01 00:00:00”格式的字符串转换为时间戳:
echo strtotime("2022-01-01 00:00:00");
输出结果:
1640995200
6. getdate()
getdate()函数用于获取日期/时间的详细信息。它的语法如下:
array getdate ([ int $timestamp = time() ] )
参数说明:
- timestamp:可选。规定要获取信息的时间戳。如果不提供时间戳,则使用当前时间。
返回值是一个包含以下元素的关联数组:
- "seconds" - 秒(0到59之间的整数)
- "minutes" - 分钟(0到59之间的整数)
- "hours" - 小时(0到23之间的整数)
- "mday" - 月份中的当天(1到31之间的整数)
- "wday" - 星期中的天(0到6之间的整数,0为周日)
- "mon" - 月份(1到12之间的整数)
- "year" - 年份(4位数)
- "yday" - 一年中的当天(0到365之间的整数)
- "weekday" - 星期中的天(英文全称,例如“Monday”)
- "month" - 月份(英文全称,例如“January”)
- "0" - 时间戳
例如,获取当前日期/时间的详细信息:
print_r(getdate());
输出结果:
Array
(
[seconds] => 44
[minutes] => 25
[hours] => 13
[mday] => 29
[wday] => 4
[mon] => 4
[year] => 2022
[yday] => 117
[weekday] => Thursday
[month] => April
[0] => 1648640744
)
7. strftime()
strftime()函数用于将时间戳转换为格式化的日期/时间字符串,支持多语言和本地化。它的语法如下:
string strftime ( string $format [, int $timestamp = time() ] )
参数说明:
- format:必需。规定日期/时间的格式。
- timestamp:可选。规定日期/时间的时间戳。如果不提供时间戳,则使用当前时间。
例如,将当前时间格式化为“年-月-日 时:分:秒(星期)”格式:
setlocale(LC_TIME, "en_US");
echo strftime("%Y-%m-%d %H:%M:%S (%A)");
输出结果:
2022-04-29 13:59:30 (Friday)
以上是PHP中常用的日期函数,可以方便地进行日期和时间的处理和转换。在实际开发过程中,我们需要灵活运用这些函数,根据实际需要进行日期计算、比较、区间判断等操作,以满足不同的应用场景需求。
