如何更改 Webix dateFilter 的过滤模式?
How to change the filtering pattern of the Webix dateFilter?
如何指定Webix数据表中dateFilter的格式?
我有一个日期格式为 "%d.%m.%Y"
:
的网格
columns:[
{ id:"date", header:[{ content:"dateFilter" }], width:160, format:myFormat }
]
其中myFormat
是webix.Date.dateToStr("%d.%m.%Y");
结果是dd.mm.yyyy
这是具有类似网格的片段:http://webix.com/snippet/1ec86aa8
关键是 dateFilter 仍然需要完整的日期 %m-%d-%Y
(mm-dd-yyyy)
所以我正在寻找一种方法来更改此预定义模式。任何建议表示赞赏。
dateFilter 使用 webix.i18n.dateFormatDate
将用户输入的日期从 str 转换为 date
顺便说一句,它做的事情更多。例如,您可以输入“<1996”,因此它不会使用上述方法转换日期,而是提取年份。
然后它将猜测的日期转换为整数并与数据的日期进行整数比较
遗憾的是 "webix.i18n.dateFormatDate" 使用 webix.i18n.dateFormat 依赖语言环境将字符串转换为日期。并且无法自定义 dateFilter 使用的格式。
您的解决方案是创建一个自定义过滤器,它与 dateFilter 的工作相同,但使用您自己的日期转换:
这里是 dateFilter 修改后的 webix 代码:
webix.ui.datafilter.myDateFilter = webix.extend({
format:function(value){
if (value === "") return "";
var date = new Date();
if (value.indexOf("today") != -1){
date = webix.Date.dayStart(date);
} else if (value.indexOf("now") == -1){
var parts = value.match(/[0-9]+/g);
if (!parts||!parts.length) return "";
if (parts.length < 3){
parts.reverse();
date = new Date(parts[0], (parts[1]||1)-1, 1);
} else
// Change here
date = webix.Date.strToDate("%d.%m.%Y")(value.replace(/^[>< =]+/,""));
}
return date.valueOf();
}
}, webix.ui.datafilter.numberFilter);
如何指定Webix数据表中dateFilter的格式?
我有一个日期格式为 "%d.%m.%Y"
:
columns:[
{ id:"date", header:[{ content:"dateFilter" }], width:160, format:myFormat }
]
其中myFormat
是webix.Date.dateToStr("%d.%m.%Y");
结果是dd.mm.yyyy
这是具有类似网格的片段:http://webix.com/snippet/1ec86aa8
关键是 dateFilter 仍然需要完整的日期 %m-%d-%Y
(mm-dd-yyyy)
所以我正在寻找一种方法来更改此预定义模式。任何建议表示赞赏。
dateFilter 使用 webix.i18n.dateFormatDate
将用户输入的日期从 str 转换为 date顺便说一句,它做的事情更多。例如,您可以输入“<1996”,因此它不会使用上述方法转换日期,而是提取年份。
然后它将猜测的日期转换为整数并与数据的日期进行整数比较
遗憾的是 "webix.i18n.dateFormatDate" 使用 webix.i18n.dateFormat 依赖语言环境将字符串转换为日期。并且无法自定义 dateFilter 使用的格式。
您的解决方案是创建一个自定义过滤器,它与 dateFilter 的工作相同,但使用您自己的日期转换:
这里是 dateFilter 修改后的 webix 代码:
webix.ui.datafilter.myDateFilter = webix.extend({
format:function(value){
if (value === "") return "";
var date = new Date();
if (value.indexOf("today") != -1){
date = webix.Date.dayStart(date);
} else if (value.indexOf("now") == -1){
var parts = value.match(/[0-9]+/g);
if (!parts||!parts.length) return "";
if (parts.length < 3){
parts.reverse();
date = new Date(parts[0], (parts[1]||1)-1, 1);
} else
// Change here
date = webix.Date.strToDate("%d.%m.%Y")(value.replace(/^[>< =]+/,""));
}
return date.valueOf();
}
}, webix.ui.datafilter.numberFilter);