【问题标题】:Sorting date column by DD/MM/YYY in jQuery DataTables 1.10.2在 jQuery DataTables 1.10.2 中按 DD/MM/YYYY 对日期列进行排序
【发布时间】:2014-12-15 15:45:33
【问题描述】:

我正在使用 DataTables 显示一些包含日期列的 MySQL 数据。

我的表格中的所有日期数据都以 DD/MM/YYYY 格式显示,无论我尝试了多少不同的东西,除了前两个数字之外,我无法对其进行排序。

我目前正在使用这种排序方法,因为我认为它最适合我的数据:

http://datatables.net/plug-ins/sorting/date-uk

"columns": [
        { "data": "Address" },
        { "data": "Date_seen", "type" : "date-uk" },

我也试过用这个方法排序,更像是DataTables网站上的例子:

"columnDefs": [
      { "type": "date-uk", "targets": 1 }
    ],

我尝试将插件代码复制到我的 JavaScript 文件中,并且还尝试通过 DataTables CDN 引用插件。

我意识到有很多类似的问题,但它们似乎都与几年前的旧版本 DataTables 相关,并且包含使用较旧的初始化,例如 sTypeaaSortingaoColumns .

我希望有人能解释为什么这不起作用,这让我发疯!

【问题讨论】:

  • 不确定为什么链接中显示的代码不适合您。在 jsfiddle.net 中创建一个包含您尝试的演示。可以将 CDN 资源用于插件和 css 代码。
  • @charlietfl 感谢您的回复。恐怕我无法将尝试放入 jsfiddle,因为我正在研究包含敏感患者信息的医疗保健系统,并且 MySQL 数据库目前仅在我测试时本地托管在我的机器上。查看更多我的 javascript 文件会有所帮助吗?只是为了在较小的范围内测试日期排序,我用虚构的信息制作了一个 jsfiddle,它运行没有问题...jsfiddle.net/mikethirteen/k9rm3qL6/3

标签: javascript jquery mysql date datatable


【解决方案1】:

虽然我还没有发现为什么使用上述插件对我不起作用,但我已经实施了一种解决方法,在我的情况下可以作为这个问题的答案。

DataTables 默认使用 YYYY-MM-DD 处理日期,因此我创建了第二个日期列,其中数据以这种方式格式化。当原始格式更改时,我还使用 javascript 函数以这种格式更新列。

在我的原始列上使用 DataTables 选项 iDataSort,并通过使用 bVisible 隐藏这个新的“默认日期”列,我现在显示我的原始列,但使用隐藏的“默认日期”列对其进行排序。下面是我如何初始化此解决方法的示例。

"columns": [
      { "data": "Name_of_Patient", "width" : "10%" },
      { "data": "Address" },
      { "data": "Hospital_Number" },
      { "data": "PCT" },
      { "data": "Date_of_Pres", "iDataSort" : 5 },
      { "data": "Date_of_Pres_Sort", "bVisible" : false }
],

【讨论】:

  • @mikethirteen,我和你有同样的问题,但是,不同的是我是 1.) 使用服务器端处理和 2.) 我的日期值是格式化的服务器端。我尝试使用您的解决方案,但它对我不起作用,所以我想知道您是否也在使用服务器端处理和服务器端格式化值?
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
相关资源
最近更新 更多