contentful & javascript: 仅获取将来带有 fields.date 的条目
contentful & javascript: get only entries with fields.date in the future
我正在使用 contentful 作为我的移动应用程序的后端。
匹配装置存储在 contentful 中。
我想查询下一场比赛,但出现以下错误:
422 (Unprocessable Entity)
我检索下一个匹配项的函数:
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){
}
)
}
您遇到的问题主要是因为日期字符串格式错误。日期字符串必须遵循 ISO-8601 format. You can create such a formatted string by using the build-in JS function Date#toISOString 或通过您选择的日期格式库。除此之外,您可以将参数作为对象传递。
以下代码使用内置日期方法:
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-28T15:00
我正在使用 contentful 作为我的移动应用程序的后端。
匹配装置存储在 contentful 中。 我想查询下一场比赛,但出现以下错误:
422 (Unprocessable Entity)
我检索下一个匹配项的函数:
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){
}
)
}
您遇到的问题主要是因为日期字符串格式错误。日期字符串必须遵循 ISO-8601 format. You can create such a formatted string by using the build-in JS function Date#toISOString 或通过您选择的日期格式库。除此之外,您可以将参数作为对象传递。
以下代码使用内置日期方法:
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-28T15:00