Laravel中JSON编码时如何修复日期格式问题?
解决Laravel JSON编码时的日期格式问题
你遇到的斜杠转义(11\/21\/2022)是JSON的标准编码行为,前端解析后会自动还原为11/21/2022。如果需要从根源确保日期格式或调整输出,可参考以下方案:
方案1:通过模型访问器统一格式化日期
在Schedule模型中定义访问器,让day字段直接返回指定格式的字符串:
// app/Models/Schedule.php public function getDayAttribute($value) { // 若day字段是日期类型,先转为Carbon实例再格式化 return \Carbon\Carbon::parse($value)->format('m/d/Y'); }
之后原有代码无需修改,pluck('day', 'id')获取的就是已经格式化好的日期字符串,JSON编码后的转义不影响前端实际使用。
方案2:手动处理JSON输出的转义斜杠
如果需要直接输出无转义的斜杠,可替换@json指令为手动编码并替换转义符:
var datas = {!! str_replace('\/', '/', json_encode($data2)) !!};
注意使用{!! !!}而非Blade默认输出标签,避免HTML转义干扰结果。
方案3:前端验证实际解析结果
实际上JS解析JSON后,转义的斜杠会自动还原。你可以在控制台验证:
console.log(datas[0].dates['7']); // 输出:11/21/2022
如果只是JSON字符串显示有转义,实际业务逻辑中无需额外处理。
内容的提问来源于stack exchange,提问作者Sharmae Reyes
相关产品推荐
相关产品推荐

