SharePoint REST API 筛选器仅基于今天的日期,而不是时间。(类似于 CAML 查询中的 IncludeTimeValue=False)



我正在尝试使用仅创建的REST API从SharePoint列表中获取数据。

var listName = "Carousel%20News";
var today = new Date().toISOString();

这是我的休息网址:

_spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items?$select=Id,Title&$filter=Created eq '" + today + "'";

,但是当我使用此休息URL时,我没有得到今天创建的项目。

(我已经仔细检查了列表中存在的项目,如今创建的日期)

我的假设是,此URL过滤器基于日期和时间值。

因此,我是否可以将REST过滤器仅与今天的日期一起使用,然后忽略时间戳(就像我们在CAML查询中执行IncludeTimeValue=False一样)?

我不知道如何在CAML中获得此功能。但是,我最近才让这在下面这样做。我正在使用$ .ajax查询和一个用于获取数据的循环。

$(document).ready(function()
{
    var siteURL = _spPageContextInfo.webServerRelativeUrl;
    var listName = "Carousel%20News";
	  var url = siteURL + "/_api/web/lists/getbytitle('"+listName+"')/Items";
    $.ajax
    ({
      url: url,
			method: "GET",
			contentType: "application/json; odata=verbose",
			headers: { "Accept": "application/json; odata=verbose" },
			success: function (data)
      {
        var dateTime = new Date();
        var now = Date.parse(dateTime); //convert dateTime to milliseconds
        for (var i = 0; i < data.d.results.length; i++)
        {
          var item = data.d.results[i];
          var ID = item.ID;
          var Created = item.Created;
          /* Lets get the millisecond value for our Date/Time Column */
          var today = Date.parse(Created); //get Millisecond value for Created Date
          var createdDiff = now - today; // get the date difference between now and Created in Milliseconds
          var formatDateDiff = createdDiff/86400000;
          console.log("Item#: "+ID+", "+"Date Difference (24 hr)= "+formatDateDiff);
          
          //Lets only show the results that meet this criteria
          if(formatDateDiff <= 24){
            // do something with your code
          };
        }
      },
      error: function(data)
      {  
        //Give me an error
      }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

让我知道这是否解决了您的问题或有助于使您进入正确的轨道

	var listName = "Carousel%20News";
	var today = new Date();
	//Set the hours for Today
	today.setUTCHours(0,0,0,0); //This will reset today to start from today at 12:00am UTC
	today.toISOString(); //this will return to UTC string
	/*
	today.setHours(0,0,0,0); //This will reset today to local timezone at 12:00 am
	today.toString(); // this will return to YOUR local zimezone string
	*/
	var siteURL = _spPageContextInfo.webServerRelativeUrl;
	var url = siteURL + "/_api/web/lists/getbytitle('" + listName + "')/items?$select=Id,Title&$filter=Created eq '" + today + "'"

相关内容

最新更新