Skip to content
This repository has been archived by the owner on May 30, 2021. It is now read-only.

datetime

Karl edited this page Jul 11, 2017 · 19 revisions

Vanilla DataTables can utilise the MomentJS library for parsing datatime strings for easier column sorting.

Demonstration

Note that the moment.js implementation is experimental and will be improved in upcoming releases.

Make sure moment.js is included in your project then select one of the two ways to sort columns based on datatime strings.

Method 1

Define a data-type attribute on the headings and set the value to date. If the datatime string is in a format that can not be sorted easily by standard methods, you must define the data-format attribute and set it's value to the format that is expected.

<table>
    <thead>
        <th data-type="date" data-format="DD/MM/YYYY"></th>
        <th data-type="date" data-format="MM/DD/YY"></th>
        ...
    </thead>
</table>

Method 2

The date and format strings can also be defined in the options using the columns property:

// Allow sorting of the first column with "DD/MM/YYYY" format
var datatable = new DataTable("#myTable", {
   columns: [
      {
         select: 0,
         type: "date",
         format: "DD/MM/YYYY"
      }
   ]
});

// Apply formatting to the third and fourth columns as well
var datatable = new DataTable("#myTable", {
   columns: [
      {
         select: 0,
         type: "date",
         format: "DD/MM/YYYY"
      },
      {
         select: [2,3],
         type: "date",
         format: "MM/DD/YY"
      }
   ]
});

As well as custom format strings, there are some pre-defined formats that you can utilise:

  • ISO_8601
  • RFC_2822
  • MYSQL
// Allow sorting of the third column by MySQL datetime strings
var datatable = new DataTable("#myTable", {
   columns: [
      {
         select: 2,
         type: "date",
         format: "MYSQL"
      }
   ]
});
Clone this wiki locally