mktime() 是 PHP 中将日期时间组件转换为 Unix 时间戳的函数,支持默认参数、溢出校正,但自 PHP 8.1 起已废弃,推荐使用 DateTime 类或 strtotime()。

mktime() 是 PHP 中用于根据指定的日期时间组件(年、月、日、时、分、秒)生成 Unix 时间戳的内置函数。
作用:把日期时间转成时间戳
它把人为可读的日期时间(比如“2025年4月5日下午3点20分”)转换成一个整数——即从 1970 年 1 月 1 日 00:00:00 UTC 开始经过的秒数(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") ]]]]]] )参数可以省略,会自动补默认值
所有参数都是可选的。没传的参数会用当前本地时间对应的部分自动填充。例如:
立即学习“PHP免费学习笔记(深入)”;
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
- mktime(14, 30) —— 表示今天下午 2:30(小时=14,分钟=30,其余用当前值)
- mktime(0, 0, 0, 12, 25, 2025) —— 表示 2025 年 12 月 25 日 00:00:00
支持“溢出”写法,自动进位/借位
这是 mktime() 很实用的一个特点:允许传入不合法的数值,它会自动校正。比如:
- mktime(0, 0, 0, 13, 1, 2024) → 自动变成 2025 年 1 月 1 日(13 月 = 下一年 1 月)
- mktime(0, 0, 0, 1, 32, 2024) → 自动变成 2024 年 2 月 1 日(1 月 32 日 = 2 月 1 日)
注意时区和已废弃状态
mktime() 使用的是服务器本地时区,不是 UTC;结果是带时区偏移的时间戳(但时间戳本身是 UTC 秒数,显示时受时区影响)。
PHP 8.1 起,mktime() 已被标记为 废弃(deprecated),官方推荐改用 DateTime 类或 strtotime() 处理时间逻辑。例如:
$timestamp = (new DateTime('2025-04-05 15:20:00'))->getTimestamp();基本上就这些。用它快速生成时间戳没问题,但新项目建议优先考虑 DateTime。










