如何在Laravel的DataTable中设置日期为dd-mm-yyyy格式
DataTable日期格式修改方案
你可以通过两种方式实现quotation_date字段从yyyy-mm-dd到dd-mm-yyyy的格式转换:
方案1:前端列渲染转换(无需修改后端代码,推荐)
直接在quotation_date的列配置中添加render回调函数,对返回的日期字符串做拆分重组即可,修改后的列配置如下:
{ data: 'quotation_date', name: 'quotation_date', // 新增render方法转换日期格式 render: function (data) { // 处理空值异常 if (!data) return '' // 按-拆分原日期字符串 [yyyy, mm, dd] const dateParts = data.split('-') // 重组为 dd-mm-yyyy return `${dateParts[2]}-${dateParts[1]}-${dateParts[0]}` } },
该方案仅修改前端展示效果,不会影响你当前开启的服务端排序、搜索逻辑,不需要调整后端接口
方案2:后端接口调整返回格式
如果有多个页面需要用到dd-mm-yyyy格式的报价日期,可以直接在后端接口返回quotation_date字段时就转换为对应格式,前端无需修改任何DataTable配置。
注意:如果采用该方案,服务端排序时请使用原始日期格式排序,不要用转换后的字符串排序,避免出现排序逻辑错误。
完整修改后的DataTable代码参考
// Data table var table = $('.data-table').DataTable({ processing: true, serverSide: true, responsive: true, ajax: "quotation", dom: '<"top"fB>rt<"bottom"lip><"clear">', columns: [{ data: 'quotation_no', name: 'quotation_no' }, { data: 'remarks', name: 'remarks' }, { data: 'quotation_date', name: 'quotation_date', render: function (data) { if (!data) return '' const dateParts = data.split('-') return `${dateParts[2]}-${dateParts[1]}-${dateParts[0]}` } }, { data: 'quotation_category', name: 'quotation_category' }, { data: 'quotation_status', name: 'quotation_status' }, { data: 'action', name: 'action', orderable: false, searchable: false }, ], "lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ], });
内容的提问来源于stack exchange,提问作者Fathul Muiin
相关产品推荐
相关产品推荐

