我有一个带有aoColumnDefs的数据表,其中包含:
{“sType”:“日期范围”,“目标”:[0]}
此列中的日期是格式为“MM/dd/yyyy-MM/dd/yyyy”的字符串。不幸的是,此列当前排序不正确。它不是按年、月、日排序,而是按月、日、年排序。
我假设这是一个日期格式问题(因为它是从左到右排序日期部分,假设我的日期是yyyy/mm/dd)。
在对数据表上的日期进行排序时,有没有办法设置使用的日期格式?
注意:我知道我可以对隐藏字段进行排序。这给我带来了其他问题,我想知道我是否可以用另一种方法解决这个问题。
从这里开始:http://datatables.net/development/sorting#type_based
要向DataTables添加新的排序函数,需要将函数附加到对象$。fn。dataTableExt。奥索尔。例如,下面添加了类型为“string case”的区分大小写排序函数:
jQuery.fn.dataTableExt.oSort['date-range-asc'] = function(x,y) {
//x = "MM/dd/yyyy - MM/dd/yyyy";
var regex = /(\d{2}\/\d{2}\/\d{4})/,
matchesX = regex.exec(x),
matchesY = regex.exec(y);
//for example, only sort on first date..
x = Date.parse(matchesX[0]);
y = Date.parse(matchesY[0]);
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
上面的代码可能已被破解。。。但这会让你走上正轨
默多克的解决方案
将此代码添加到站点。js(或在datatables之后导入的任意位置):
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"my-date-range-pre": function (a) {
var ukDatea = a.split('/');
var year = $.trim(ukDatea[2].split('-')[0]);
var month = $.trim(ukDatea[0]);
var day = $.trim(ukDatea[1]);
if (month.length == 1)
month = "0" + month;
if (day.length == 1)
day = "0" + day;
return (year + month + day) * 1;
},
"my-date-range-asc": function (a, b) {
var result = ((a < b) ? -1 : ((a > b) ? 1 : 0));
return result;
},
"my-date-range-desc": function (a, b) {
var result = ((a < b) ? 1 : ((a > b) ? -1 : 0));
return result;
}
});
然后在表定义中设置AOColumnDef,如下所示:
{ "sType": "my-date-range", "aTargets": [0] }
问题内容: 如何对日期和/或日期时间对象列表进行排序?接受的答案在这里是不是为我工作: 问题答案: 你得到,因为它运行 在原地 ,这意味着它不返回任何东西,但修改列表本身。您只需要呼叫而无需再次分配。 有一个内置函数,该函数返回列表的排序版本-也会执行您想要的操作。
我使用的是jquery数据表。我在做日期范围筛选。当我选择“最小日期”和“最大日期”时,结果是数据表上没有筛选数据。我用了剧本 null null null null 日期格式为YYYY-MM-DD。每次我用日期范围搜索时,结果不会出现在数据表中。请帮帮我,我哪里做错了。谢谢。
问题内容: 源表如下: 我想得到以下输出: 我必须使用循环来填充此表吗? 谢谢 问题答案: 您可以使用技巧来查询 演示
问题内容: 我有这样的文件: 是否可以按日期查询最近10天发布的文档数量?例如: 问题答案: 是的,您可以使用聚合轻松实现这一点,如下所示:
我用footable library来展示桌子。每一行都有一个日期列,我想按日期列对该表进行排序(在列标题上单击)。 变量包含格式为的日期,因此: 如果我使用我可以在正确的欧元区(dd/MM/yyyy)样式中看到日期,但我无法正确排序 PS:另外两列(Titolo,InviatoDa)按字母顺序排序,工作正常。
问题内容: 我有一个日期变量:如果所说的日期在TODAY的3天内,我想返回一个布尔值。我不太确定如何在Python中构造它。我只处理日期,不处理日期时间。 我的工作示例是“宽限期”。一个用户登录到我的网站,如果宽限期在今天的3天之内,则该用户将省略其他脚本等。 我知道您可以在Python的日期模块中做一些花哨/复杂的事情,但我不确定在哪里看。 问题答案: 在Python中检查范围,您可以使用: