日期/时间
将日期/时间源数据转换为适合显示的格式
- 作者:艾伦·贾丁
- 需要:DataTables 1.10+,Moment.js 1.7+
注意 - 自 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 中提供
然后,此插件将自动注册到全局 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 上找到它,非常欢迎提出请求!
- 此插件:datetime.js
- 完整的 DataTables 插件存储库:DataTables/Plugins