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

如何使用Carbon将英文长日期转换为m-d-y格式?

解决英文日期转m-d-y格式的问题

方法一:使用Carbon处理

如果项目里已经在用Carbon,直接用它的parse方法识别英文日期字符串,再通过format输出目标格式即可:

// 假设动态获取的日期字符串是 $dateStr
$dateStr = 'November 12, 2018';
$carbonDate = \Carbon\Carbon::parse($dateStr);
$formattedDate = $carbonDate->format('m-d-Y');
// 输出结果:11-12-2018

parse方法能自动识别绝大多数常见日期格式,包括这种带完整英文月份的写法;format('m-d-Y')里的参数对应:m是两位数字月份,d是两位数字日期,Y是四位数字年份,刚好满足需求。

方法二:原生PHP DateTime类实现

如果不想依赖Carbon,用PHP原生的DateTime类也能完成:

$dateStr = 'November 12, 2018';
// 方式1:自动解析
$date = new DateTime($dateStr);
// 方式2:指定格式解析(更稳妥,避免自动识别出错)
$date = DateTime::createFromFormat('F j, Y', $dateStr);

$formattedDate = $date->format('m-d-Y');
// 结果同样是:11-12-2018

这里createFromFormat的参数F j, Y完全匹配输入格式:F代表完整英文月份名,j代表不带前导零的日期,Y代表四位年份,这种方式比自动解析更严谨。

异常处理建议

如果是动态数据,建议加上异常处理,避免因日期格式不规范导致报错:

try {
    $carbonDate = \Carbon\Carbon::parse($dateStr);
    $formattedDate = $carbonDate->format('m-d-Y');
} catch (\Exception $e) {
    // 根据业务需求处理,比如记录日志或设置默认值
    $formattedDate = null;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:25:25