在PHP开发中,我们时常需要获取当前的日期和时间,此时我们就可以使用PHP内置的时间和日期函数来满足这些需求。

1. date(format)函数:通过传入不同的参数将时间戳转化成不同格式化的时间。

format参数可以是:

类别字符说明
年份Y4位数字年份
y2位数字年份
L是否闰年(1=是,0=否)
oISO-8601 年份
月份m月份(01-12)
n月份(1-12,无前导0)
M3字母月份缩写
F完整月份名称
t当月天数
日期d日期(01-31)
j日期(1-31,无前导0)
z一年中的第几天(0开始)
S英文序数后缀
星期D3字母星期缩写
l完整星期名称
w数字星期(0=周日,6=周六)
NISO-8601 星期(1=周一,7=周日)
时间H24小时制(00-23)
h12小时制(01-12)
G24小时制(0-23,无前导0)
g12小时制(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内置时间函数的使用技巧。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)