熟悉并掌握PHP中的时间函数
PHP是一门广泛应用于网络编程的服务器端脚本语言。在PHP中,操作日期和时间的函数有很多,我们通常称之为时间函数。掌握时间函数对于PHP开发人员来说是非常必要的,因为很多业务场景都需要使用时间函数来进行日期和时间的计算、显示、格式化等操作。本文将介绍PHP中常用的时间函数,并对其应用场景进行简要说明。
一、日期和时间基础概念
在介绍时间函数之前,我们需要先了解一些日期和时间的基础概念。在PHP中,我们通常以秒数的形式表示时间。Unix标准时间是指从格林威治标准时间(GMT)1970年1月1日0时0分0秒起经过的秒数。因此Unix时间戳是一个整数,它表示了当前时间与Unix标准时间的秒数差。
在PHP中,我们可以使用time()函数获取当前的Unix时间戳,也可以使用date()函数将Unix时间戳格式化为日期和时间的字符串。
二、常用的时间函数
1. time()函数:获取当前时间的Unix时间戳。
2. date()函数:将Unix时间戳格式化为日期和时间的字符串。
3. strtotime()函数:将指定的日期和时间字符串转换为Unix时间戳。例如:$time = strtotime('2019-01-01 00:00:00');
4. mktime()函数:根据指定的日期和时间创建一个Unix时间戳。例如:$time = mktime(0, 0, 0, 1, 1, 2019);
5. strftime()函数:将Unix时间戳格式化为本地日期和时间的字符串。与date()函数不同的是,strftime()函数可以使用本地化的日期和时间格式。
6. gmstrftime()函数:将Unix时间戳格式化为GMT日期和时间的字符串。与strftime()函数类似,但gmstrftime()函数使用的时区是GMT。
7. getdate()函数:将Unix时间戳转换为数组,并返回包含有关日期和时间的信息。返回的数组包含了年、月、日、小时、分钟、秒、星期几、年的第几天、夏令时等信息。
8. checkdate()函数:验证指定的日期是否合法。如果合法,则返回TRUE,否则返回FALSE。
9. mktime()和date()函数的常用格式参数如下:
| 格式参数 | 说明 |
| --- | --- |
| d | 日,前面无零,1-31 |
| dd | 日,前面有零,01-31 |
| M | 月,英文缩写,Jan-Dec |
| m | 月,前面无零,1-12 |
| mm | 月,前面有零,01-12 |
| y | 年,两位数字 |
| Y | 年,四位数字 |
| H | 小时,24小时制,前面无零,0-23 |
| HH | 小时,24小时制,前面有零,00-23 |
| i | 分钟,前面无零,0-59 |
| ii | 分钟,前面有零,00-59 |
| s | 秒,前面无零,0-59 |
| ss | 秒,前面有零,00-59 |
三、应用场景举例
1. 计算时间差
有时候我们需要计算一段时间的时间差,例如计算两个时间戳之间相差的小时数、分钟数、秒数等。可以通过以下代码实现:
$start_time = strtotime('2019-01-01 00:00:00');
$end_time = strtotime('2019-01-02 00:00:00');
$diff_sec = $end_time - $start_time;
$diff_min = $diff_sec/60;
$diff_hour = $diff_min/60;
2. 显示当前时间
通常我们需要在页面中显示当前时间,可以通过以下代码实现:
$time = time();
echo date('Y-m-d H:i:s', $time);
3. 判断是否是闰年
可以通过以下代码判断指定的年份是否是闰年:
$year = 2020;
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
echo $year . '年是闰年';
} else {
echo $year . '年不是闰年';
}
4. 显示星期几和年的第几天
通过getdate()函数可以获取指定Unix时间戳的日期和时间信息,包括星期几和年的第几天。例如:
$time = time(); $date_info = getdate($time); $weekday = $date_info['weekday']; $year_day = $date_info['yday']; echo '今天是星期' . $weekday . ', 第' . $year_day . '天';
五、总结
本文介绍了PHP中常用的时间函数,包括获取当前时间、格式化时间字符串、转换时间戳等操作。时间函数的应用场景非常广泛,对于PHP开发人员来说非常必要。最后需要注意的是,由于时区的差异,我们在进行时间计算和显示时,需要根据实际情况进行时区调整,以避免出现错误的时间结果。
