日期/时间

将日期/时间源数据转换为适合显示的格式

注意 - 自 DataTables 1.12 起,DataTables 内置了日期/时间渲染器,应使用此渲染器代替本渲染器。详情请参见手册

日期/时间格式通常从服务器 API 以你不想显示给最终用户的格式(例如 ISO8601)返回。此渲染帮助器可用于将任何源日期/时间格式转换为表格排序时用户在阅读表格时可以轻松理解的内容,此外,DataTables 也能够理解这种格式。

使用MomentJS 库来实现此目的,你只需告诉它转换的格式并根据需要指定区域设置。

此函数应与columns.render DataTables 配置选项一起使用。

它接受一个、两个或三个参数

  • DataTable.render.moment(to);
  • DataTable.render.moment(from, to);
  • DataTable.render.moment(from, to, locale);

其中

  • to - 显示给最终用户的格式
  • from - 在数据中提供的格式(默认值为 ISO8601 - YYYY-MM-DD
  • locale - MomentJS 应使用的区域设置 - 默认值为 en(英语)。

使用

此插件有多种不同的获取和使用方式。

浏览器

此插件在 DataTables CDN 中提供

JS

然后,此插件将自动注册到全局 DataTables 实例。如果你正在使用 AMD 加载器(例如 Require.js),也可以使用此文件。

请注意,如果你正在使用多个插件,将插件合并到一个文件中并在自己的服务器上托管它而不是向 DataTables CDN 发出多个请求,在性能方面可能是有利的。

NPM

所有插件均在 NPM 上提供(也可与 Yarn 或任何其他 Javascript 包管理器一起使用),作为datatables.net-plugins的一部分。要使用此插件,请首先安装插件包

npm install datatables.net-plugins

ES 模块

然后,如果你正在使用 ES 模块,请导入datatables.net、任何其他你需要的 DataTables 扩展以及插件

import DataTable from 'datatables.net';
import 'datatables.net-plugins/dataRender/datetime.mjs';

CommonJS

如果你正在为 Node 使用 CommonJS 加载器(例如与旧版本的 Webpack 或非模块化 Node 代码),请使用以下方法require插件

var $ = require('jquery');
var DataTable = require('datatables.net');
require('datatables.net-plugins/dataRender/datetime.js');

示例

// Convert ISO8601 dates into a simple human readable format
  $('#example').DataTable( {
    columnDefs: [ {
      targets: 1,
      render: DataTable.render.moment( 'Do MMM YYYY' )
    } ]
  } );
// Specify a source format - in this case a unix timestamp
  $('#example').DataTable( {
    columnDefs: [ {
      targets: 2,
      render: DataTable.render.moment( 'X', 'Do MMM YY' )
    } ]
  } );
// Specify a source format and locale
  $('#example').DataTable( {
    columnDefs: [ {
      targets: 2,
      render: DataTable.render.moment( 'YYYY/MM/DD', 'Do MMM YY', 'fr' )
    } ]
  } );

版本控制

如果你有任何关于如何改进此插件的想法,或发现任何错误的地方,可以在 GitHub 上找到它,非常欢迎提出请求!