日期時間
將日期/時間來源資料轉換為適合顯示的格式
- 作者:Allan Jardine
- 需求:DataTables 1.10+、Moment.js 1.7+
注意 - 從 DataTables 1.12 開始,DataTables 內建了日期/時間渲染器,應該使用此渲染器來取代此外掛。詳情請參閱手冊。
從伺服器 API 返回的日期/時間格式通常並不是您希望顯示給終端使用者的格式(例如 ISO8601)。此渲染輔助程式可用於將任何來源日期/時間格式轉換為使用者在閱讀表格時可以輕易理解的格式,也可供 DataTables 用於表格排序。
使用 MomentJS 函式庫來完成此轉換,您只需告訴它要從哪種格式轉換為哪種格式,並在需要時指定地區設定。
此函式應與 DataTables 的 columns.render
設定選項一起使用。
它接受一個、兩個或三個參數
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 上取得,並且非常歡迎提出 pull request!
- 此外掛程式:datetime.js
- 完整的 DataTables 外掛程式儲存庫:DataTables/Plugins