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免费学习笔记(深入)”;
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。
以上就是php中mktime()函数是什么的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1341468.html
微信扫一扫
支付宝扫一扫