从Datatables中的日期字段中删除时间戳

时间:2012-03-15 15:19:10

标签: java javascript jquery-datatables

我正在使用jquery Datatables插件。我按照http://www.codeproject.com/Articles/190718/jQuery-DataTables-and-J2EE-web-application-integra

链接进行了操作

我将JSON对象中的Date传递给datatables插件。来自webservice调用的格式类似于

  

“Sat Jan 10 00:08:00 EST 2009”

,我需要剥离时间,EST和那天,我的意思是它应该看起来像

  

“2009年1月10日”

并且列在服务器端排序。我只需要在客户端即时剥离数据。我还在学习数据表插件,我不确定是否实现了这个。专家请指出我正确的方向。

2 个答案:

答案 0 :(得分:0)

[编辑] 由于看起来日期从服务器返回为字符串,因此您最简单的解决方案可能是正则表达式。试试这个:

function reformatDate(dateStr) {
  var r = /^\w{3}\s+(\w{3})\s+(\d{1,2})\s+.*?(\d{4})$/
    , m = (''+dateStr).match(r);
  return (m) ? m[1]+' '+m[2]+', '+m[3] : dateStr;
}

[原创] 假设您正在使用实际的Date object并且您不希望招致正确的JavaScript日期争用库(例如优秀的{{3}你可以像这样格式化日期:

var formatDate = (function() {
  var months = ['Jan', 'Feb', 'Mar', 'Apr', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  return function(dt) {
    return months[dt.getMonth()] + ' ' + dt.getDate() + ', ' + dt.getFullYear();
  };
})();
formatDate(new Date()); // => "Mar 15, 2012"

答案 1 :(得分:0)

我不确定您是否可以将bServerSide设置为true来执行此操作,但您可以使用数据表的aoColumns选项设置列定义,然后应用列通过

呈现
fnRender: function (o, val) {
    parse your date here...
    return newDateString;
}