微信小程序开发时间写法(显示时间段 几秒前/几分前/几小时前/前天/昨天...)

 

效果图:

js:

 Page({
  data: {
    task:[],
    array1:[31,28,31,30,31,30,31,31,30,31,30,31]
   }
  fixzero:function(res){
     return res<10?'0'+res:res;
  },
  reduce:function(res1,res2,res3,res4){       //得出相差天数并返回
    var sum1=0,sum2=0;
      if(res1===1){
        sum1=this.data.array[1]===28?365:366
      }
      for(var i=0;i<res1-1;i++){
         sum1=sum1+this.data.array1[i];
      }
      for(var i=0;i<res3-1;i++){
        sum2=sum2+this.data.array1[i]
      }
      console.log(sum1,sum2)
    var result = sum1+res2-sum2-res4
      return{
         result
      }
  },
  
  time:function(res){                            //res是你从数据库拿到的数据
    var datenow = new Date();                    //获取当前时间戳
    var month1 = datenow.getMonth() + 1;
    var date11 = datenow.getDate();
    var year1=datenow.getDate;

    for (var i = 0; i < res.data.length; i++) {       //res.data是你拿从数据库拿到的数据数组
    var jude = Math.floor((datenow-res.data[i].time)/1000)
    console.log(jude)
      var date1 = new Date(res.data[i].time);       //time是你数据的时间戳
      var year = date1.getFullYear();
      var month = date1.getMonth() + 1;
      var date = date1.getDate();
      var hour = date1.getHours();
      var mm = this.fixzero(date1.getMinutes());   //补0函数例:12:05 12:5(不补0)
      if(year1%4===0){                               //闰年2月多一天
        this.data.array[1]=29
      }
    console.log(month1, date11, month, date)
      
      var result=this.reduce(month1,date11,month,date)
      console.log(result)
      
       if (result.result===0) {                     
         console.log('success')
         if (jude < 0) {
           res.data[i].time = {
             first: 1,
             second: ' 秒前',
           }
         }
         else if(jude<60)
        res.data[i].time = {
          first: jude+1,
          second: ' 秒前',
        }
         else if (jude >= 60 && jude < 3600) {
        res.data[i].time = {
          first: Math.floor(jude / 60),
          second: ' 分钟前',
        }
      }
        else if (jude >= 3600 && jude < 86400) {
        res.data[i].time = {
          first: Math.floor(jude / 60 / 60),
          second: ' 小时前',

        }
      }
      }
      else if (result.result===1)
        res.data[i].time = {
          first: '昨天 ',
          second: hour + ':',
          third: mm

        }
      else if (result.result===2)
         res.data[i].time = {
           first: '前天',
           second: hour + ':',
           third: mm

         }
      else
         res.data[i].time = {
           first: month+'-',
           second: date+' ',
           third: hour+':',
           four:mm

         }
      }
    })

wxml:

<view wx:for="{{task}}">
  {{item.time.first}}{{item.time.second}}{{item.time.third}}{{item.time.four}}
</view>

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值