【发布时间】:2015-02-13 00:50:28
【问题描述】:
我正在尝试找到一种将帖子分类为两个数组的方法:即将发布的和当前的(即将发布的帖子在未来,而当前的帖子已经发布)。
所有帖子都有一个 schedulePubDate,它是一个日期字符串,格式为 YYYY-MM-DDT00:00:00。今天的日期必须是一个 Date 对象,因为它需要保持相关性(我正在使用 moment())
是否可以比较这两个不同的东西而不必使用 .split 并分别比较月/日/年
angular.forEach(data.items, function (key, index) {
if (moment(key.scheduledPubDate) > moment()) {
$scope.upcomingPosts.push(item[index]);
} else if (moment(key.scheduledPubDate) <= moment()) {
$scope.currentPosts.push(item[index]);
};
});
【问题讨论】:
-
虽然这不是一个完整的答案,但您应该考虑将
ng-repeat与过滤器和指令一起使用,而不是使用 forEach - 调查一下 -
我没想过这样做。但是这次它对我不起作用,因为我没有显示数据,而是将它们分成两个数组,但我很感激这个提醒!我总是忘记过滤器
-
docs.angularjs.org/api/ng/filter/orderBy 很确定你也可以在非 UI 的东西上做 ng-repeat。它只返回按您包含的模型参数排序的数组副本
-
您可以使用
moment(theDateStr, theFormatStr);将日期解析为字符串。完成后,您可以使用<或>比较日期。没有内置任何东西来比较字符串日期,你需要解析它们。 -
字符串没有时区,您希望将其视为 UTC 还是本地?标准不同,所以你不能依赖它。
标签: javascript angularjs momentjs