上一篇
想象一下,你正在开发一个电商网站,用户下单后需要显示“3天前购买”或精确到秒的订单创建时间,又或者你要统计最近30天的用户活跃数据,这些场景都离不开对时间的处理——而PHP中的时间戳和日期转换就是解决这类问题的利器。
时间戳(Timestamp)是指从1970年1月1日 00:00:00 UTC(格林尼治时间)到当前时间的总秒数,它像是一个全球统一的“时间计数器”,方便程序计算时间间隔。
$currentTimestamp = time(); // 示例输出:1760227200(2025年8月的某个时间点)
// 2025年8月15日 12:30:00 的时间戳 $customTimestamp = mktime(12, 30, 0, 8, 15, 2025);
date()
函数$timestamp = time(); echo date('Y-m-d H:i:s', $timestamp); // 输出:2025-08-15 14:25:36
常用格式符号:
Y
:4位年份(如2025) m
:2位月份(01~12) d
:2位日期(01~31) H
:24小时制小时(00~23) i
:分钟(00~59) s
:秒(00~59) DateTime
类(更灵活)$dateTime = new DateTime(); $dateTime->setTimestamp($timestamp); echo $dateTime->format('Y年m月d日 H时i分'); // 输出:2025年08月15日 14时25分
strtotime()
函数$dateStr = "2025-08-20 18:00:00"; $timestamp = strtotime($dateStr); // 输出对应时间戳
支持的自然语言:
echo strtotime("next Monday"); // 下周一的时间戳 echo strtotime("+1 week"); // 一周后的时间戳
DateTime
类$dateTime = new DateTime("2025-08-25"); $timestamp = $dateTime->getTimestamp();
$start = strtotime("2025-08-10"); $end = strtotime("2025-08-25"); $diffDays = ($end - $start) / 86400; // 86400秒=1天
date_default_timezone_set('Asia/Shanghai'); // 设置时区为上海 echo date('Y-m-d H:i:s'); // 输出东八区时间
// 使用DateTimeImmutable避免意外修改 $safeDate = new DateTimeImmutable("2025-12-31");
Q:时间戳会溢出吗?
A:32位系统的PHP在2038年1月19日会溢出(Y2K38问题),但64位系统无此限制。
Q:如何存储时间更高效?
A:数据库建议用TIMESTAMP
或DATETIME
类型,程序内部计算优先用时间戳。
掌握PHP时间戳和日期的转换,就像获得了一把时间管理的万能钥匙,无论是记录日志、计算倒计时,还是生成复杂的报表,你都能游刃有余,现在就去试试用date('Y-m-d')
输出今天的日期吧!
本文由 祢惜萍 于2025-08-02发表在【云服务器提供商】,文中图片由(祢惜萍)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/511940.html
发表评论