知足;javascript:将来只获取带有fields.date的条目

知足;javascript:将来只获取带有fields.date的条目,javascript,angularjs,rest,date,contentful,Javascript,Angularjs,Rest,Date,Contentful,我正在使用contentful作为我的移动应用程序的后端 匹配装置存储在contentful中。 我想查询下一个匹配项,但出现以下错误: 422 (Unprocessable Entity) 检索下一个匹配项的My函数: function nextOpponent(){ var content_Type = mainConfig.config.contentType.match // Matches var order = "fields.datum";

我正在使用contentful作为我的移动应用程序的后端

匹配装置存储在contentful中。 我想查询下一个匹配项,但出现以下错误:

422 (Unprocessable Entity)
检索下一个匹配项的My函数:

function nextOpponent(){
        var content_Type = mainConfig.config.contentType.match // Matches
        var order = "fields.datum";
        var gt = new Date().toLocaleString();
        console.log(gt);
        var query = "content_type=" + content_Type +
            "&order=" + order +
            "&fields.datum%5Bgte%5D=" + encodeURI(gt);

        contentful.entries(query).then(
            //success
            function(response){
                $scope.nextMatch = response.data.items[0];
                console.log($scope.nextMatch);
            },
            //error
            function(response){

            }
        )
    }

您面临的问题主要是由于日期字符串格式错误。日期字符串必须跟在后面。您可以使用内置JS函数或通过所选的日期格式库创建这样的格式化字符串。此外,您可以将参数作为对象传递

以下代码使用内置日期方法:

var gt = new Date().toISOString();

contentful.entries({
  content_type: content_Type,
  order: order,
  'fields.datum[gte]': gt
}).then(function () {
  // go ahead here...
});
补充说明:
Contentful将根据请求的URL缓存查询结果。因此,如果您不需要高精度,我建议使用仅反映当前日期或一天中各个小时的时间戳。例如,
2015-07-28
2015-07-28815:00

您面临的问题主要是因为日期字符串格式不正确。日期字符串必须跟在后面。您可以使用内置JS函数或通过所选的日期格式库创建这样的格式化字符串。此外,您可以将参数作为对象传递

以下代码使用内置日期方法:

var gt = new Date().toISOString();

contentful.entries({
  content_type: content_Type,
  order: order,
  'fields.datum[gte]': gt
}).then(function () {
  // go ahead here...
});
补充说明:
Contentful将根据请求的URL缓存查询结果。因此,如果您不需要高精度,我建议使用仅反映当前日期或一天中各个小时的时间戳。例如,
2015-07-28
2015-07-28815:00

当我将参数作为对象传递时,将不再应用过滤器。你知道这是什么原因吗?传递字符串仍然有效“contentful.entries”(“content_type=“+mainConfig.config.contentType.match+”&order=“+order+”&fields.datum[gte]=”+gt)。然后(//success'Hm.您使用的是哪个版本?还有
mainConfig.config.contentType.match的值是多少?
?该值是正确的(如果我将其放在查询字符串中,它会起作用)。我使用的是angular contentful 1.1.0nevermind,它可以作为字符串使用,您的解决方案对我帮助很大。谢谢!当我将参数作为对象传递时,过滤器不再被应用。您知道这可能是什么原因吗?传递字符串仍然可以使用“contentful.entries”(“content\u type=”+mainConfig.config.contentType.match+“&order=“+order+”&fields.datum[gte]=“+gt”)。然后(//success'Hm.您使用的是哪个版本?还有
mainConfig.config.contentType.match
的值是什么?该值是正确的(如果我将其放入查询字符串中,它会起作用).我正在使用angular contentful 1.1.0 Nevermind,它可以作为字符串使用,您的解决方案对我帮助很大。谢谢!