100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【小程序云开发】通过时间戳差判断今天 昨天 前天并渲染到页面上

【小程序云开发】通过时间戳差判断今天 昨天 前天并渲染到页面上

时间:2022-12-19 05:05:07

相关推荐

【小程序云开发】通过时间戳差判断今天 昨天 前天并渲染到页面上

大家好,我是浩冉然,今天给大家分享一篇关于通过时间戳差判断今天,昨天,前天并渲染到页面上的文章

因为需要这个功能(小编写的是论坛类的小程序),小编也是花了一个下午+晚上的时间去研究它,也看过其他大神写的,属实不是很好理解,今天就按我理解并解决的简单方法分享给大家

首先我们得理解什么是时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数.

它的单位有两种,一种是s,另一种是ms

13位的时间戳,其精度是毫秒(ms);

10位的时间戳,其精度是秒(s);

13位数的时间戳转化为10位数的时间戳 ,除以1000;

10位数的时间戳转化为13位数的时间戳 ,乘以1000;

在javascript中, vartime=Date.now();通过Date.now()得到的time是13位的时间戳。

本文也是获取的13位时间戳

大概将一下主要逻辑

在发布时候通过获得13位时间戳存入字段名为时间time的字段值,在页面渲染多个数据时,令从数据库获得的对象下标从0,1..开始将对象中的time的字段值通过自己构造的函数返回真正的时间判断值(如今天几点,昨天几点之类的),该函数通过现在的时间戳和发布帖子传入数据库的时间戳相减,得出值再判断再返回,例如判断为今天的话,差值小于24*60*60=86400时就判断,昨天,前天以此类推

举个例子,本次的列表渲染用的是分页,全部直接渲染或者懒加载之类的列表渲染等的也类似,作出相应调整就是了

首先我们可以从数据库得到每个需要渲染到页面的帖子数据中的有关时间的值

然后在页面getdate()函数中读取数据库,获得res.data

将res.data赋值给list,执行for循环,将list[i].time重新赋值,再看我们自己构造的判断函数time()

time:function(e){console.log('打印第一个'+e ) var time = Date.now(); //当前的时间戳console.log(time) console.log(time - e)var timecha = time - evar date1 = new Date(e); //e是你传入数据的时间戳var year = date1.getFullYear();var month = date1.getMonth() + 1;var date = date1.getDate();var hour = date1.getHours();var mm = date1.getMinutes(); console.log("测试string:"+typeof e);// 根据自己需要通过判断timecha/1000的区间值来进行return赋值if( typeof e == 'string'){return e}else if(timecha/1000 <259200){console.log('时间为这三天')let e = '前天' + hour + ':' +mmconsole.log(e)return e}else if(timecha/1000 >259200){console.log('时间为以前')let e = month+'-'+date+' '+hour+':'+mmreturn e}},

因为是通过s判断时间差的,所以要从13位时间戳转化成10位时间戳,就是除以1000

然后用if语句判断timecha/1000处于哪个区间了,为什么前面要typeofe=='string'这个判断呢,因为,我用的上拉刷新的时候,本来有10条数据,又获得了10条数据,总共20条数据,但前十条已经赋值过了,所以会从原来的number数据类型变成string字符串类型,比如(1242434311114 变成了今天 15:00)举个例子哈并非真实的对应的time,如果直接全部渲染在页面的话就不用开头判断的这个if也行

渲染到页面的话,就在wxml中用wx:for循环就能依次渲染出来啦

好啦,讲到这里啦~,有什么问题私我呦~欢迎交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。