gpt4 book ai didi

javascript - 客户端 JSON 模型上的日期/日期时间过滤器

转载 作者:行者123 更新时间:2023-12-03 05:24:23 24 4
gpt4 key购买 nike

我有一个绑定(bind)到 sap.m.Table 的 JSON 模型。我试图根据服务以 JSON 对象格式返回的“日期”列(绑定(bind)到模型的属性[CreatedOn])过滤数据 ("/Date(timeStamp) ”)。表格如下: enter image description here

来自服务器的示例日期:

enter image description here

我正在尝试在客户端过滤表格,但我不确定如何在客户端实现日期过滤器。显示的日期格式基于

sap.ui.model.type.Date({pattern: 'dd/MM/YYYY'})

过滤代码如下:

var fromD = this.getView().byId("idKMFilterPaneDocDateF").getValue() ? new Date(this.getView().byId("idKMFilterPaneDocDateF").getValue()) :
undefined;

var dtFilter = new sap.ui.model.Filter({
path: "CreatedOn",
operator: "EQ",
value1: "dateTime'" + fromD.toJSON() + "'"
});

var binding = oTable.getBinding("items");
binding.filter([filter], "Application");
binding.refresh();

当我执行上面的代码时,我总是得到“NO Data”。我还需要根据用户选择标准实现“BT”过滤器,但无法使其与“EQ”本身一起使用。

最佳答案

创建自定义过滤器

var fromD = this.getView().byId("idKMFilterPaneDocDateF").getValue() ? new Date(this.getView().byId("idKMFilterPaneDocDateF").getValue()) :undefined;
var dtFilter = new sap.ui.model.Filter("CreatedOn");
dtFilter.fnTest = function(value) {
//check what value are you getting here. If its string, get only time out of it
//Compare the date values(in milliseconds)
fromD.setHours(0); //get rid of time and concern about date
fromD.setMinutes(0);
fromD.setSeconds(0);
fromD.setMilliseconds(0);
//value should be date object, else change accordingly..
if(fromD.getTime() === value.getTime()){
return true;
}
return false;
};

PS:如果您可以在您的编码上下文中使用 JSFiddle,我就可以进行调试。

关于javascript - 客户端 JSON 模型上的日期/日期时间过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com