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

如何在PHP中将DD/MM/YYYY h:i格式转换为YYYY-MM-DD h:i格式

在PHP中将DD/MM/YYYY h:i转换为YYYY-MM-DD h:i的最佳方法

你手动截取子串拼接的思路确实可行,但PHP提供了更健壮、更易维护的内置方案,完全不用自己处理字符串拆分和拼接,还能避免格式异常带来的bug。下面两种方法是最常用的:

方法一:使用DateTime类(推荐)

DateTime类是PHP处理日期时间的标准方式,从PHP 5.2开始支持,它的优势是面向对象、格式明确、易于错误处理,不会像字符串操作那样容易出错。

步骤很简单:用createFromFormat()方法按照输入格式解析日期,再用format()方法输出目标格式即可:

$originalDate = "19/09/2020 06:00";
// 按照DD/MM/YYYY h:i的格式解析输入
$dateObj = DateTime::createFromFormat('d/m/Y H:i', $originalDate);

// 检查解析是否成功(避免非法日期导致错误)
if ($dateObj) {
    $formattedDate = $dateObj->format('Y-m-d H:i');
    echo $formattedDate; // 输出:2020-09-19 06:00
} else {
    echo "输入的日期时间格式不符合要求,请检查!";
}

方法二:使用strtotime() + date()函数

如果你追求代码简洁,也可以用strtotime()配合date()来实现,但要注意一个细节:strtotime()默认会把DD/MM/YYYY格式识别为MM/DD/YYYY(当日期部分小于等于12时),所以需要先把/替换成-,让它正确识别为DD-MM-YYYY格式:

$originalDate = "19/09/2020 06:00";
// 替换分隔符,让strtotime正确解析
$timestamp = strtotime(str_replace('/', '-', $originalDate));
// 转换为目标格式
$formattedDate = date('Y-m-d H:i', $timestamp);

echo $formattedDate; // 输出:2020-09-19 06:00

⚠️ 注意:这种方法只适合你能确保输入格式严格是DD/MM/YYYY h:i的场景,如果输入可能出现MM/DD/YYYY的情况,很容易解析出错,所以还是更推荐第一种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:07:53