2013-06-11 2 views
1

Devexpress의 DXTREME 프레임 워크를 사용하여 HTML 모바일 앱을 OData 소스에 연결합니다.JS에서 OData 날짜 필터링

OData 서비스를 통해 노출 된 SQL Server의 내 테이블 중 하나에 날짜가 아닌 테이블이 있습니다.

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

내가 달력 컨트롤을 통해이 필드에 데이터를 필터링하기 위해 노력하고 있어요,하지만 난 JS 측의 데이터 소스를 필터링 할 때, 나는 어떤 일치를 얻을 : 다음과 같이 하나로, OData를 통해 노출된다. 이것은 OData 서비스에 날짜가 전달 되었기 때문에 UTC 형식으로되어 있기 때문에 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 측 시간대 formy (10)을 뺍니다.

내가하고 싶은 일은 특정 날짜에 유효한 작업 목록을 반환하는 것입니다. 이것을 어떻게 할 수 있습니까?

답변

1

내 문제는 dxDateBox 컨트롤이 날짜 만 반환하고 날짜가 내 odata 서비스에 전달 될 때 변경된다는 혼란이라고 생각합니다.

나는 UTC 자신을 날짜를 변환,하지만 단지 (filterDate 컨트롤에서 온) 컨트롤에서 날짜 부품을 사용하여 문제를 해결 : 이것은 잘 작동 아니라 자세한 보인다

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

.