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

PHP中从DateTime提取日期:如何从数组结果获取纯日期值

解决提取日期字符串中的日期部分问题

嘿,我明白你现在的困扰了——你拿到的是带时间的日期字符串,想用array_slice提取日期部分但没效果对吧?这很正常,因为array_slice是用来操作数组的,而你当前处理的$dateRow[0]是一个字符串类型的日期值,所以这个函数派不上用场。

给你几个简单有效的方法来提取不带时间的日期部分:

方法1:用explode按空格拆分字符串

因为你的日期和时间是用空格分隔的,直接拆分后取第一个元素就行:

$dateRows = $this->get('app')->getDates();
$dateRow = json_decode(json_encode($dateRows[0], true));
// 提取日期部分
$pureDate = explode(' ', $dateRow[0])[0];
dump($pureDate); // 输出:"2014-01-01"

方法2:用substr截取固定长度的字符

如果你的日期格式固定是YYYY-MM-DD HH:MM:SS,那么日期部分正好是前10个字符,直接截取就行:

$dateRows = $this->get('app')->getDates();
$dateRow = json_decode(json_encode($dateRows[0], true));
// 截取前10位字符
$pureDate = substr($dateRow[0], 0, 10);
dump($pureDate); // 输出:"2014-01-01"

方法3:用DateTime类处理(更规范的方式)

如果后续可能遇到不同的日期格式,用PHP的日期类来处理会更可靠,还能避免格式变动带来的问题:

$dateRows = $this->get('app')->getDates();
$dateRow = json_decode(json_encode($dateRows[0], true));
// 转换为DateTime对象并格式化
$dateObj = new DateTime($dateRow[0]);
$pureDate = $dateObj->format('Y-m-d');
dump($pureDate); // 输出:"2014-01-01"

这三种方法都能解决你的问题,其中前两种适合格式固定的场景,第三种更灵活通用,你可以根据自己的需求选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:46:26