getdate() 在 php 8.0 中仍可用,返回当前或指定时间戳的日期关联数组,含 seconds、minutes、hours 等键,但推荐使用更灵活的 datetime 类。

getdate() 在 PHP 8.0 中依然可用,它返回一个包含当前本地时间(或指定时间戳)各部分信息的关联数组。
基本用法:获取当前日期时间数组
不传参数时,默认使用当前系统时间:
$now = getdate(); print_r($now);
输出类似:
Array
(
[seconds] => 23
[minutes] => 45
[hours] => 16
[mday] => 5 // 月份中的第几天(1-31)
[wday] => 3 // 星期几(0=星期日,6=星期六)
[mon] => 4 // 月份(1-12)
[year] => 2024
[yday] => 95 // 年份中的第几天(0-365)
[weekday] => Wednesday // 完整星期名
[month] => April // 完整月份名
[0] => 1712335523 // 时间戳(等同于 time())
)
传入时间戳:获取指定时刻的日期数组
可以传入一个 Unix 时间戳,让 getdate() 解析该时刻:
$timestamp = strtotime('2023-12-25 10:30:00');
$dateInfo = getdate($timestamp);
echo $dateInfo['year']; // 2023
echo $dateInfo['month']; // December
echo $dateInfo['mday']; // 25
常用字段说明与注意事项
- mday 是“月日”,范围 1–31;wday 是“周日索引”,0 表示星期日;yday 从 0 开始计数(1月1日是第 0 天)
- 返回数组中 weekday 和 month 的值依赖于系统 locale 设置,中文环境不一定显示中文,需配合 setlocale() + strftime() 实现本地化
- PHP 8.0 已废弃 getdate() 的某些历史行为(如对非法时间戳的容错),建议确保传入有效时间戳
- 若只需部分字段(如年月日),可直接访问键名:
$date['year']、$date['mon']、$date['mday']
替代方案提醒
虽然 getdate() 仍可用,但现代 PHP 更推荐使用 DateTime 类,它更灵活、面向对象、支持时区和国际化:
$date = new DateTime();
echo $date->format('Y'); // 2024
echo $date->format('F'); // April
echo $date->format('j'); // 5(等同于 mday)
对于新项目,优先考虑 DateTime;维护旧代码时,getdate() 仍可放心使用。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











