如何实现readhub小程序端今天昨天的展示?

{id: "42", title: "2018年体育中考内容出炉", date: "20180205", create_time: "1517646345"}
{id: "41", title: "全域实施新建住宅建筑全", date: "20180205", create_time: "1517630772"}
{id: "40", title: "高校毕业生就业集中招动", date: "20180204", create_time: "1517207532"}
{id: "39", title: "92号汽油每升上涨5分钱", date: "20180204", create_time: "1517112928"}

列表输出可自由定制,需要参数,可加

如何用js实现如下,今天、昨天的分组

图片描述

阅读 2.2k
2 个回答

先用js计算出今天的时间,把时间格式弄成跟数据里面date格式一致,今天、昨天都可以通过js计算出来吧,把这个日期传入数组,查询出date里面与当前日期匹配的数据,然后push成一个新数组,渲染到页面就行了。代码就不贴了吧,实际上就一个计算日期和通过日期查询数据的过程。

你的数据应该是按照时间顺序的,先计算出今天昨天前天一周前你需要的分组时间,然后遍历数组比较

var data = data;
var flagn = 0;
var flagb1 = 0;
var flagb3 = 0;
var flagb7 = 0;
var flagb9 = 0;
for (var i = 0; i < data.length; i++) {
    data[i].date = null;
    var secondTime = data[i].time;
    //获取 0:0 的时间戳
    var nowDate = new Date(new Date().setHours(0, 0, 0, 0));
    var before1Date = new Date(new Date(new Date().setDate(new Date().getDate() - 1)).setHours(0, 0, 0, 0));
    var before3Date = new Date(new Date(new Date().setDate(new Date().getDate() - 3)).setHours(0, 0, 0, 0));
    var before7Date = new Date(new Date(new Date().setDate(new Date().getDate() - 7)).setHours(0, 0, 0, 0));
    if (secondTime >= nowDate) {
      if (flagn == 0) {  //第一个就加入一个标志  用来在渲染的时候判断显示今天
        data[i].date = '今天';
        flagn = 1;
      }
    } else if (secondTime >= before1Date) {
      if (flagb1 == 0) {
        data[i].date = '昨天';
        flagb1 = 1;
      }
    } else if (secondTime >= before3Date) {
      if (flagb3 == 0) {
        data[i].date = '三天前';
        flagb3 = 1;
      }
    } else if (secondTime >= before7Date) {
      if (flagb7 == 0) {
        data[i].date = '一周前';
        flagb7 = 1;
      }
    } else {
      if (flagb9 == 0) {
        data[i].date = '很久以前';
        flagb9 = 1;
      }
    }
 }
 return data;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题