簡體   English   中英

使用 REST 過濾共享點日期字段

[英]Using REST to filter Share Point date field

我需要過濾希望使用 REST 在 SharePoint 列表中收到項目的日期。 我有它部分工作,但我有一個問題。 我正在使用 Datepicker 來選擇我用作過濾器的日期,但是當使用toISOString()選擇日期並將其轉換為可接受的格式時,我會得到一個“確切”日期(例如2018-06-15T00:00:00.000Z )。 問題在於日期部分 ( 2018-06-15 ) 匹配 OK,但不匹配時間部分,因為日期選擇器將始終提供與 SharePoint 列表條目不同的時間 (HH:MM:SS)。

這是我正在使用的:

... $filter=Date_Received eq datetime'2018-05-11T04:00:00.000Z'

我有幾個項目是在 2018 年 6 月 15 日輸入的,但我沒有得到任何值,因為它們輸入的時間不同(例如 2018-06-15T05:00:00Z)。 有沒有辦法使用substringof東西來過濾日期,或者有人有解決方法嗎?

提前致謝。

SharePoint 中的日期以 GMT 存儲。 所以記錄的時間是倫敦時間。

選項 1 - 使用范圍:

$filter=Date_Received gt datetime'2018-05-10T20:00:00.000Z' and Date_Received lt datetime'2018-05-11T20:00:00.000Z'

如果您不是在午夜附近尋找文件,那么:

$filter=Date_Received gt datetime'2018-05-11T00:00:00.000Z' and Date_Received lt datetime'2018-05-11T23:59:59.000Z'

選項 2 - 使用 SharePoint 2010 REST API 和日期函數:

/sites/yourSite/_vti_bin/listdata.svc/yourList?$filter=year(Date_Received) eq 2018 and month(Date_Received) eq 5 and day(Date_Received) eq 11

由於格林威治標准時間,午夜左右的日期仍然存在問題。

選項 3 - 將 SharePoint 2010 REST API 與計算列一起使用:

添加一個名為 Date_Received_Text 的計算列:=TEXT(Date_Received,"yyyy-mm-dd")

/sites/yourSite/_vti_bin/listdata.svc/yourList?$filter=Date_Received_Text eq '2018-07-08'

同樣的午夜問題...

注意:2010 API 在 SharePoint Online 中仍然有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM