欢迎访问宙启技术站
智能推送

PHP中的日期函数-简化复杂的日期和时间操作

发布时间:2023-06-13 15:50:08

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中常用的日期函数,可以方便地进行日期和时间的处理和转换。在实际开发过程中,我们需要灵活运用这些函数,根据实际需要进行日期计算、比较、区间判断等操作,以满足不同的应用场景需求。