如何在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)。

所以我想找一种方法来改变这个预定义的模式。如有任何建议,将不胜感激。
发布于 2016-12-02 12:26:36
dateFilter转换用户使用webix.i18n.dateFormatDate输入从str到日期的日期
顺便说一句,它能做更多的事情。例如,您可以输入"<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);更新片段:http://webix.com/snippet/20c0175a
https://stackoverflow.com/questions/40916871
复制相似问题