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

如何使用PHP时间和日期函数

发布时间:2023-06-15 13:55:58

PHP中提供了许多时间和日期函数,用于获取当前时间、格式化时间、计算时间间隔等操作。在开发中,我们需要熟练掌握这些函数,才能快速完成相关功能的实现。本文将介绍几个常用的PHP时间和日期函数及其用法。

1. date()函数

date()函数可用于格式化一个时间戳,并返回一个格式化后的字符串。语法如下:

date(string $format, [int $timestamp = time()])

$format参数指定日期/时间的格式,$timestamp参数是可选的,用于指定要格式化的时间戳。如果没有指定$timestamp参数,则默认使用当前时间戳。

常用的参数和格式如下:

参数 | 说明 | 示例

------|-----------------------|------------------

Y | 年份,四位数 | 2022

m | 月份,有前导零 | 01-12

n | 月份,无前导零 | 1-12

d | 月份中的天数,有前导零 | 01-31

j | 月份中的天数,无前导零 | 1-31

H | 24小时制的小时数,有前导零 | 00-23

G | 24小时制的小时数,无前导零 | 0-23

i | 分钟数,有前导零 | 00-59

s | 秒数,有前导零 | 00-59

示例:

echo date('Y-m-d H:i:s');  // 输出当前时间,格式为'2022-01-01 12:00:00'
echo date('Y年m月d日 H时i分s秒');  // 输出当前时间,格式为'2022年01月01日 12时00分00秒'

2. time()函数

time()函数用于获取当前时间戳(1970年1月1日 00:00:00至当前时间的秒数)。语法如下:

time()

示例:

echo time();  // 输出当前时间戳,如1641109691

3. strtotime()函数

strtotime()函数用于将人类可读时间转化为Unix时间戳。语法如下:

strtotime(string $time, [int $now = time()])

$time参数指定要转换的字符串形式的时间,$now参数是可选的,用于指定当前时间戳。该函数支持的时间格式非常多,以下是一些常见的:

格式 | 说明 | 示例

-----------------|--------------------------------------------------------|---------------------

yyyy-mm-dd | 年-月-日 | 2022-01-01

yyyy/mm/dd | 年/月/日 | 2022/01/01

dd-mm-yyyy | 日-月-年 | 01-01-2022

dd/mm/yyyy | 日/月/年 | 01/01/2022

mm/dd/yyyy | 月/日/年 | 01/01/2022

mm-dd-yyyy | 月-日-年 | 01-01-2022

yyyy-mm-dd hh:ii | 年-月-日 小时:分钟,其中小时使用24小时制,有前导零 | 2022-01-01 12:00

yyyy/mm/dd hh:ii | 年/月/日 小时:分钟,其中小时使用24小时制,有前导零 | 2022/01/01 12:00

dd-mm-yyyy hh:ii | 日-月-年 小时:分钟,其中小时使用24小时制,有前导零 | 01-01-2022 12:00

dd/mm/yyyy hh:ii | 日/月/年 小时:分钟,其中小时使用24小时制,有前导零 | 01/01/2022 12:00

mm/dd/yyyy hh:ii | 月/日/年 小时:分钟,其中小时使用24小时制,有前导零 | 01/01/2022 12:00

mm-dd-yyyy hh:ii | 月-日-年 小时:分钟,其中小时使用24小时制,有前导零 | 01-01-2022 12:00

示例:

echo strtotime('2022-01-01');  // 输出时间戳1640995200,即2022年1月1日00:00:00的时间戳
echo strtotime('2022/01/01 12:00');  // 输出时间戳1641049200,即2022年1月1日12:00:00的时间戳

4. mktime()函数

mktime()函数用于返回一个日期的Unix时间戳。语法如下:

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 | 小时数,使用24小时制,范围为0-23 | 12

minute | 分钟数,范围为0-59 | 30

second | 秒数,范围为0-59 | 0

month | 月份,范围为1-12 | 1

day | 天数,范围为1-31 | 1

year | 年份,四位数,范围为1970-2038 | 2022

is_dst | 可选参数,用于指定是否考虑夏令时 | -1(默认)/0/1

示例:

echo mktime(12, 0, 0, 1, 1, 2022);  // 输出1641024000,即2022年1月1日12:00:00的时间戳

5. strtotime()和date()的结合应用

在日常开发中,我们经常需要将时间格式化为不同的显示方式,或者将字符串类型的时间转换为时间戳,并进行一些计算。这时候可以结合使用strtotime()和date()函数,进行相应的操作。

示例1:获取当前时间的前一天的时间戳。

$now = time();
$yesterday = strtotime('-1 day', $now);
echo $yesterday;  // 输出昨天的时间戳

示例2:将时间戳转为指定的格式。

$timestamp = time();  // 获取当前时间戳
echo date('Y年m月d日 H时i分s秒', $timestamp);  // 输出格式为'2022年01月01日 12时00分00秒'的时间

综上所述,PHP时间和日期函数是PHP开发中非常重要的一部分,我们需要认真研究并灵活运用,才能更好地实现各种功能。