如何使用Carbon从两位年、月、日格式字符串计算年龄?
解决方法:将6位日期字符串转为Carbon对象并计算年龄
嘿,我来帮你搞定这个问题!Carbon的createFromFormat方法就是专门用来处理这种自定义格式日期字符串的,完全适配你的需求,下面是具体实现步骤:
方法一:使用createFromFormat(推荐)
这个方法可以直接指定日期字符串的格式,对你的场景来说,格式串就是'ymd'——分别对应两位年份(y)、两位月份(m)、两位日期(d),完美匹配你给出的720402这种结构。
代码示例:
// 你的日期字符串 $dateString = '720402'; // 按指定格式创建Carbon对象 $birthDate = Carbon::createFromFormat('ymd', $dateString); // 直接调用age方法获取年龄 $howOldAmI = $birthDate->age;
关于年份世纪的说明
Carbon默认会自动处理两位年份的世纪映射:
- 00-69 → 对应2000-2069年
- 70-99 → 对应1970-1999年
所以你的72会被正确解析为1972年,完全符合预期。
方法二:手动格式化后用parse(备选)
如果你更习惯先调整字符串格式,也可以给日期字符串插入分隔符,再用Carbon的parse方法解析:
$dateString = '720402'; // 拆分字符串并添加分隔符,转为"72-04-02"格式 $formattedDate = substr($dateString, 0, 2) . '-' . substr($dateString, 2, 2) . '-' . substr($dateString, 4); // 解析为Carbon对象并计算年龄 $birthDate = Carbon::parse($formattedDate); $howOldAmI = $birthDate->age;
不过这个方法不如第一种简洁,优先推荐createFromFormat。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

