PHP 中正确函数是 date() 而非 _date,用于格式化本地日期时间;需传入格式字符串,可选时间戳参数,默认当前时间,依赖服务器时区设置。

PHP 中没有 _date 函数,你可能混淆了函数名 —— 正确的函数是 date(),它用于格式化本地日期和时间。所有常见需求(如“2024-03-15”、“15/03/2024 14:30”)都靠它加格式符实现。
date() 函数的基本用法与参数含义
date() 必须传入格式字符串,第二个参数可选(时间戳),不传则默认使用当前时间:
echo date('Y-m-d H:i:s'); // 输出类似:2024-03-15 14:30:22注意:date() 依赖服务器时区设置,若结果不对,先检查 date_default_timezone_set('Asia/Shanghai') 是否已调用。
最常用的格式符及其实际效果
格式符大小写敏感,且部分字符在字符串中需转义(如字面量 L 要写成 \L):
-
Y:4 位数字年份(2024),y是 2 位(24) -
m:带前导零的月份数字(01–12),n不补零(1–12) -
d:带前导零的日期(01–31),j不补零 -
H:24 小时制小时(00–23),h是 12 小时制(01–12) -
i:分钟(00–59),s:秒(00–59) -
l(小写 L):星期几全名(Friday),D是缩写(Fri) -
z:一年中的第几天(0–365)
处理时间戳与跨时区场景的典型写法
从数据库读出的 Unix 时间戳(如 1710489022)必须显式传入 date() 第二个参数:
$ts = 1710489022;
echo date('Y-m-d', $ts); // 2024-03-15
echo date('m/d/Y g:i A', $ts); // 03/15/2024 2:30 PM如果要支持用户自定义时区,别直接改全局时区,改用 DateTime 类:$dt = new DateTime('@1710489022');
$dt->setTimezone(new DateTimeZone('America/New_York'));
echo $dt->format('Y-m-d H:i:s'); // 同一时间戳,纽约时间直接用 date() 无法动态切换时区,这是最容易踩的坑。
格式符看似简单,但 date() 的行为完全依赖系统时区和输入时间戳的准确性;用错一个字母(比如把 Y 写成 y 或 l 写成 I)会导致输出不可预期,调试时优先核对格式字符串是否被正确转义或拼写错误。











