gpt4 book ai didi

javascript - JS 中的 OData 日期过滤

转载 作者:行者123 更新时间:2023-11-28 02:11:21 24 4
gpt4 key购买 nike

我正在使用 Devexpress 的 DXTREME 框架将 HTML 移动应用连接到 OData 源。

我在 SQL Server 中通过 OData 服务公开的表之一是其中包含日期(不是日期时间)字段的表。它通过 OData 公开,如下所示:

<d:TaskDate m:type="Edm.DateTime">2010-04-01T00:00:00</d:TaskDate>

我试图通过日历控件过滤该字段上的数据,但是当我尝试过滤 JS 端的数据源时,我没有得到任何匹配项。这是因为日期以 UTC 格式传递到 OData 服务,因此如果我查询 TaskDate = '10/JUL/2013',我相信日期传递为“09/JUL/2013 14:00” ”。如果我按 TaskDate > '10/JUL/2013' 进行过滤,无论如何我都会得到“09/JUL/2013 14:00”之后的结果。

我尝试声明一个没有时间部分的新日期:

filterDate = new Date(2013, 6, 10)

但是还是不行,JS端还是减去了10个时区。

我想要做的是返回在该特定日期有效的任务列表。我怎样才能实现这个目标?

最佳答案

我认为我的问题是 dxDateBox 控件仅返回日期,并且该日期在传递到我的 odata 服务时发生更改。

我通过自己将日期转换为 UTC 解决了该问题,但仅使用控件中的日期部分(其中 filterDate 来自控件):

var paramDate = new Date(Date.UTC(this.filterDate().getFullYear(), this.filterDate().getMonth(), this.filterDate().getDate()));
this.dataSource.filter(["TaskDate", "=", paramDate]);

这很好用,但看起来相当冗长。

关于javascript - JS 中的 OData 日期过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042471/

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