微信小程序云开发模仿朋友圈

标签: javascript

第一次写博客也不知道怎么个描述~
就简单明了的说一下

模仿朋友圈吧

一.我个人觉得就时间上处理有一点难
做出的效果在这里插入图片描述
直接上代码~

db.collection("recruit_add_work").orderBy("createTime","desc").get({
      success(res) {
        infomation = res.data
        console.log(res)
        //  数组对象拼接字符串
        for (let i = 0; i<infomation.length; i++) {
          // 定义两个局部变量用来最后的数据渲染
          var time
          var state
          var src = "detailedInformation[" + i + "].src"
          var title = "detailedInformation[" + i + "].title"
          var content = "detailedInformation[" + i + "].content"
          var timer = "detailedInformation[" + i + "].timer"
          var type = "detailedInformation[" + i + "].type"

          // 获取每一天数据添加时间
          let addTime = infomation[i].addTime
          console.log(addTime)
          // 将获取到字符的时间拆分为数组便于操作
          addTime = addTime.split("")
          console.log(addTime)
          // 定义day/day_用来存放添加的日期
          let day = addTime[8]
          let day_ = addTime[9]
          console.log(day + day_)
          // 获取当前时间
          let nowTime = new Date()
          // 获取当前天是几号
          nowTime.getDate()

          // 判断当前的日期是否等于添加的日期
          if ((day + day_) == nowTime.getDate()) {
            console.log("日期" + day + day_)
            // 如果当前日期等于添加的日期/而判断在同一天中是否是同一个小时
            // 定义hour/hour_用来存放添加的小时
            let hour = addTime[13]
            let hour_ = addTime[14]
            // 判断是否是同一个小时
            if ((hour + hour_) == nowTime.getHours()) {
              console.log("小时" + hour + hour_)
            // 定义minute/minute_用来存放添加的分钟 
              let minute = addTime[16]
              let minute_ = addTime[17]

              console.log("分钟" + minute + minute_)
              // 全局变量time用来做传递最终参数的纽带
              // 将添加时间赋值给全局time
              time = minute + minute_
              // 获取当前分钟
              let nowMinute = nowTime.getMinutes()
              // 分钟差值计算:当前分钟-添加分钟
              time = nowMinute - time+1
              console.log(time)
              // state全局属性值
              state = "分钟前"
              console.log(state)
            } else {
              // 如果是同一天但是不是同一个小时则进行小时差值计算
              time = hour + hour_
              // 获取当前小时
              let nowHours = nowTime.getHours()
              // 小时差计算
              time = nowHours - time
              state = "小时前"
              console.log(state)
            }

          } else {
            // 若不是同一天
            console.log("不是同一天" + (day + day_))
            // 天数差值计算
            // 用现在的日期-添加的日期如果差值等于1代表是昨天
            if (nowTime.getDate() - (day + day_) == 1) {
              console.log("是昨天")
              state = "昨天"
            } else {
              // 差值不等于1则显示添加时间的月/日/时/分
              time = addTime[5] + addTime[6] + "-" + addTime[8] + addTime[9] + " " + addTime[13] + addTime[14] + ":" + addTime[16] + addTime[17]
              console.log(time),
              // 此时属性值为空
              state=""
            }
          }
          // 将上面最终的值渲染到页面
          that.setData({
            [src]: infomation[i].userInfo.avatarUrl,
            [title]: infomation[i].userInfo.nickName,
            [content]: infomation[i].detailed_information.own,
            [timer]: time,
            [type]:state
          })
        }
      }
    })

主要思想是在添加数据到数据库的时候添加时间(注:要转换一下格式)


如图这样的格式
一般默认的格式是这样的

像这种时间格式,后面排序的时候会用到

在获取到数据后把addTime也获取到,让后进行split(“”)把它转换成数组便于操作
在这里插入图片描述
首先我们需要的数据是日,小时,分钟
之后进行if()来判断

   if(如果是同一天){
     if(如果是同一个小时){
       就用现在的时间减去添加的时间=分钟差值
     }
   }
   如果是同一天但是不是同一个小时
   else{
   就用现在的小时-减去添加的小时=小时差值
   }
else{
不是同一天
if(添加的天数-现在的天数=1)
等于1就是昨天

}
else{
就帮添加的时间渲染上去
}



createTime
```标准时间格式用来做排序
因为在我们获取数据库的时候默认是最先添加的最后显示出来,
所以说我们用这个时间来进行排序.orderBy("createTime","desc")
这样就可以得到最新添加到数据库的数据在最前面了.........................
emmmm就这样吧..................

原文链接:加载失败,请重新获取