首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变Webix dateFilter的过滤模式?

如何改变Webix dateFilter的过滤模式?
EN

Stack Overflow用户
提问于 2016-12-01 17:30:01
回答 1查看 464关注 0票数 0

如何在Webix中指定dateFilter的格式?

我有一个网格,其中的日期被格式化为"%d.%m.%Y"

代码语言:javascript
复制
columns:[
  { id:"date", header:[{ content:"dateFilter" }], width:160, format:myFormat }
]

如果myFormatwebix.Date.dateToStr("%d.%m.%Y");,则结果是dd.mm.yyyy

下面是一个类似网格的片段:http://webix.com/snippet/1ec86aa8

关键是dateFilter仍然要求完整的日期为%m-%d-%Y (mm-dd-yyyy)。

所以我想找一种方法来改变这个预定义的模式。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 12:26:36

dateFilter转换用户使用webix.i18n.dateFormatDate输入从str到日期的日期

顺便说一句,它能做更多的事情。例如,您可以输入"<1996“,因此它不会使用上述方法日期进行转换,而是提取年份。

然后,它将猜测的日期转换为一个数据交换器,并与数据的日期进行比较

遗憾的是,"webix.i18n.dateFormatDate“使用依赖于区域设置的webix.i18n.dateFormat来转换字符串到日期。而且无法自定义dateFilter使用的格式。

您的一个解决方案是创建一个自定义筛选器,它执行与dateFilter相同的工作,但使用您自己的日期转换:

下面是dateFilter的修改后的webix代码:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40916871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档