Laravel 5.4时间格式处理报错:无法将表单时间保存至数据库
解决Laravel 5.4中表单时间提交保存报错的问题
嘿,你的问题根源很明确:$request->input('birthtime')获取到的是字符串类型(比如用户提交的14:30),并不是Carbon日期实例,所以直接调用->format('H:i')肯定会报错。下面给你两种可行的解决方案:
方案一:直接使用提交的字符串(最简单)
因为<input type="time">提交的内容本身就是H:i格式的字符串,完全符合你要存入数据库的格式,所以可以直接赋值:
$add->BTime = $request->input('birthtime');
方案二:转为Carbon实例后处理(适合有额外时间操作需求)
如果你后续需要对这个时间做更多处理(比如加减时长、转换时区等),可以先把字符串转为Carbon对象,再格式化输出:
// 从字符串解析为Carbon实例 $birthtime = \Carbon\Carbon::createFromFormat('H:i', $request->input('birthtime')); // 格式化后赋值(这里格式和原字符串一致,若有其他需求可修改格式参数) $add->BTime = $birthtime->format('H:i');
额外注意事项
- 确保你的数据库中
BTime字段的类型是time(或者varchar类型,长度足够存下H:i格式的字符串),避免因字段类型不匹配导致保存失败。
内容的提问来源于stack exchange,提问作者kobi
相关产品推荐
相关产品推荐

