You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何获取DateTime对象的date属性值?

解决PHP DateTime对象无法直接获取date属性的问题

嘿,这个问题我之前踩过坑!你通过print_r()看到的[date]其实是DateTime对象的受保护属性,PHP不允许外部代码直接访问这类属性,所以你用$value->created_at->date或者数组式的$value->created_at["date"]都会失败。

正确的做法是使用DateTime类内置的format()方法,这是官方推荐的获取格式化日期的方式,灵活度还很高:

// 获取和print_r里一致的完整日期时间字符串(包含微秒)
$fullDateTime = $value->created_at->format('Y-m-d H:i:s.u');

// 如果只需要日期部分,比如2018-03-10
$onlyDate = $value->created_at->format('Y-m-d');

// 要是需要带时区的格式
$dateWithTimezone = $value->created_at->format('Y-m-d H:i:s e');

简单解释下format()的常用参数:

  • Y:四位年份(比如2018)
  • m:两位月份(比如03)
  • d:两位日期(比如10)
  • H:24小时制的小时(比如12)
  • i:两位分钟(比如53)
  • s:两位秒数(比如18)
  • u:微秒(比如000000)
  • e:时区标识(比如+02:00)

另外,如果你需要获取时间戳,也可以用getTimestamp()方法,再根据需求转换:

$timestamp = $value->created_at->getTimestamp();
// 把时间戳转回日期字符串
$dateString = date('Y-m-d H:i:s', $timestamp);

总结一下,别想着直接访问对象的受保护属性,用DateTime提供的公开方法才是规范且靠谱的做法~

内容的提问来源于stack exchange,提问作者Rade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:51:23