PHP 8.1 中 date() 函数格式化时间戳需选对格式字符串并传入正确时间戳参数,注意时区设置、常见格式字符大小写敏感性及与 strtotime() 等函数的配合使用。

PHP 8.1 中用 date() 函数格式化时间戳,核心就两点:选对格式字符串、传对时间戳参数。它不复杂,但细节容易出错。
基础用法:直接传入时间戳
只要把整型时间戳作为第二个参数传给 date(),就能按需格式化:
-
date('Y-m-d', 1726552560)→ 输出 2024-09-17(假设该时间戳对应那天) -
date('Y年m月d日 H:i', $ts)→ 输出中文风格,如 2024年09月17日 13:56 - 时间戳为
0也合法,表示 1970-01-01 00:00:00 UTC(注意时区影响)
常见格式字符速查
这些字母组合决定输出样式,大小写敏感:
- Y:四位年份(2024),y:两位年份(24)
- m:带前导零的月份(09),n:不带零(9)
- d:带零日期(17),j:不带零(17)
- H:24小时制小时(13),h:12小时制(01)
- i:分钟(56),s:秒(00)
- l(小写 L):星期全名(Thursday),D:缩写(Thu)
必须注意时区问题
PHP 8.1 默认用服务器时区,但 date() 不自动处理时区偏移。若时间戳来自 UTC 或其他时区,务必提前设置:
立即学习“PHP免费学习笔记(深入)”;
- 在脚本开头加:
date_default_timezone_set('Asia/Shanghai'); - 否则可能比本地时间快/慢几小时,尤其部署在海外服务器时
- 可用
date_default_timezone_get()检查当前生效时区
处理非当前时间的几种典型场景
不只是静态时间戳,还能灵活配合其他函数:
- 数据库里存的 int 类型时间戳:
date('Y-m-d H:i:s', $row['created_at']) - 字符串转时间戳再格式化:
date('m/d/Y', strtotime('2026-09-17')) - 计算相对时间:
date('Y-m-d', strtotime('+3 months'))→ 输出三个月后的日期



















