在PHP开发中,我们时常需要获取当前的日期和时间,此时我们就可以使用PHP内置的时间和日期函数来满足这些需求。
1. date(format)函数:通过传入不同的参数将时间戳转化成不同格式化的时间。
format参数可以是:
| 类别 | 字符 | 说明 |
|---|---|---|
| 年份 | Y | 4位数字年份 |
| y | 2位数字年份 | |
| L | 是否闰年(1=是,0=否) | |
| o | ISO-8601 年份 | |
| 月份 | m | 月份(01-12) |
| n | 月份(1-12,无前导0) | |
| M | 3字母月份缩写 | |
| F | 完整月份名称 | |
| t | 当月天数 | |
| 日期 | d | 日期(01-31) |
| j | 日期(1-31,无前导0) | |
| z | 一年中的第几天(0开始) | |
| S | 英文序数后缀 | |
| 星期 | D | 3字母星期缩写 |
| l | 完整星期名称 | |
| w | 数字星期(0=周日,6=周六) | |
| N | ISO-8601 星期(1=周一,7=周日) | |
| 时间 | H | 24小时制(00-23) |
| h | 12小时制(01-12) | |
| G | 24小时制(0-23,无前导0) | |
| g | 12小时制(1-12,无前导0) | |
| i | 分钟(00-59) | |
| s | 秒(00-59) | |
| a | 小写 am/pm | |
| A | 大写 AM/PM | |
| v | 毫秒(000-999) | |
| u | 微秒(000000-999999) | |
| 时区 | e | 时区标识符 |
| T | 时区缩写 | |
| O | 与GMT时差(小时) | |
| P | 与GMT时差(带冒号) | |
| Z | 时区偏移秒数 |
这些参数通过“-”连接,指定时间或日期的输出格式。比如此时我们需要输出当前日期:XXXX-XX-XX H:i:s(2025-12-1 14:51:25)
<?php
echo Date('Y-m-d H:i:s');
?>2. time()函数:获取当前Unix时间戳(1970年1月1日00:00:00 UTC到当前时间经过的秒数)。
<?php echo time();//1764572261 ?>
3. DateTime类:进行复杂的日期计算和时区转换。
<?php
$date = new DateTime();//创建一个DateTime对象
/* 使用modify方法进行复杂的时间计算 */
echo date('Y-m-d H:i:s').'<br>';//输出当前时间 2025-12-01 15:12:20
echo $date->modify("+4 Days")->format('Y-m-d H:i:s').'<br>';//输出+4天后的时间 2025-12-05 15:12:20
/* 时区转换 */
// 1. 转换为 UTC 时区
$date->setTimezone(new DateTimeZone('UTC'));//UTC时间: 2025-12-05 07:16:12 UTC
echo "UTC时间: " . $date->format('Y-m-d H:i:s T') . '<br>';
// 2. 转换为 北京时间
$date->setTimezone(new DateTimeZone('Asia/Shanghai'));//北京时间: 2025-12-05 15:16:12 CST
echo "北京时间: " . $date->format('Y-m-d H:i:s T') . '<br>';
?>4. DateTime时间类使用技巧:
<?php
/* 创建两个DateTime对象 */
$start = new DateTime('2025-12-1');//起始日期
$end = new DateTime('2025-12-6');//截至日期
/* 1. 使用diff()方法求时间差 */
echo $start->diff($end)->days.'<br>';//5
/* 2. 进行日期和时间的格式化输出 */
echo $start->format('y-m-d').'<br>';//25-12-01
echo $end->format('Y-m-d').'<br>';//2025-12-06
/* 3. 生成随机日期 */
$randTimeStamp=mt_rand($start->getTimestamp(),$end->getTimestamp());//2025-12-02
echo date('Y-m-d',$randTimeStamp).'<br>';
?>总结:本节主要介绍了如何使用PHP内置的时间和日期函数,读者需以实操为主,感受PHP内置时间函数的使用技巧。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程