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

如何去除DataTable中日期列的时间部分?

DataTable日期列去除时间部分的正确处理方式

你之前直接在DataTable初始化根节点添加format配置是无效的——DataTable并没有这个全局配置项,需要针对目标日期列单独配置渲染规则。以下是两种可靠的解决方案:

方案一:原生JavaScript Date对象处理

适合未引入日期库的项目,手动提取日期部分:

var grid = $('#grid').DataTable({
  columns: [
    // 其他列的配置...
    {
      data: 'yourDateField', // 替换为你数据源中的日期字段名
      render: function(data, type, row) {
        if (!data) return '';
        const date = new Date(data);
        // 格式化为 DD-MM-YYYY,可根据需求调整顺序(比如 Y-M-D)
        const day = String(date.getDate()).padStart(2, '0');
        const month = String(date.getMonth() + 1).padStart(2, '0');
        const year = date.getFullYear();
        return `${day}-${month}-${year}`;
      }
    }
    // 其他列的配置...
  ]
});

方案二:使用moment.js简化处理(若项目已引入)

如果你的项目已经使用了moment.js日期库,代码会更简洁:

var grid = $('#grid').DataTable({
  columns: [
    // 其他列的配置...
    {
      data: 'yourDateField',
      render: function(data, type, row) {
        return data ? moment(data).format('DD-MM-YYYY') : '';
      }
    }
    // 其他列的配置...
  ]
});

额外注意事项

  • 确保data属性值与你数据源中的日期字段名完全匹配(比如后端返回的create_time)
  • 如果是服务器端已渲染好的HTML表格(原始单元格带日期时间),可通过row参数获取原始内容处理:
render: function(data, type, row) {
  // 假设目标列是第3列(索引从0开始),提取空格前的日期部分
  const rawDate = $(row).find('td:eq(2)').text();
  return rawDate ? rawDate.split(' ')[0] : '';
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:22:46