小程序时间戳转换及数据遍历
最近在完成商品评价页面,类似于下图的这种
遇到的问题就是时间戳的问题,后台返回的数据,时间是没有处理的,所以就需要我们自己来处理了,
第一步,创建一个js文件
文件内容
//时间戳转换成日期时间
function js_date_time(unixtime) {
var date = new Date(unixtime*1000);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
// var minute = date.getMinutes();
// var second = date.getSeconds();
// minute = minute < 10 ? ('0' + minute) : minute;
// second = second < 10 ? ('0' + second) : second;
// return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
// return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
return y + '-' + m + '-' + d;
}
module.exports = {
js_date_time: js_date_time
}
这里需要注意一下,我的时间是10位数字,而不是13位数字,所需要*1000
let arr = 1625795001; //这里是没有*1000的
let arr = 1551598000000; //这里是*1000的
var date = new Date(unixtime*1000);
第二步,引用这个文件,看我们写的这个js文件是否生效
在小程序对应的页面的js文件中
onShow: function () {
var util = require("../../../../utils/time.js");
// var arr = 1551598000000;//这里是*1000的
var arr = 1625795001; //这里是没有*1000的
console.log(util.js_date_time(arr))
},
这里需要注意的是,我们引用的js的路径一定要对,然后就可以通过控制台看到我们打印的日期了
这里可以看到打印的日期了,因为我们的js是*1000的了,所以就会正确的转换
最后一步,也是最重要的一步,我们怎么遍历到页面中
首先呢,看一下我们从后台拿到的数据格式,这里我的数据格式,如图
这是一个数据包含对象格式的数据
我们要做的就是,通过遍历拿到每个数组的时间的属性名并赋值,思路就是这么个思路
getconinfo(){
const maitkey = this.id;
getCommentInfo(maitkey).then(res => {
console.log(res)
var util = require("../../../../utils/time.js");
const alldatas = res.msg
for(let i=0;i<alldatas.length;i++){
alldatas[i]['time'] = util.js_date_time(alldatas[i]['time'])
this.setData({
alldata : alldatas
})
}
})
},
//alldatas是我们在data里面定义好的数组
我们还需要再页面加载的时候就调用这个函数
onLoad: function (options) {
this.id = options.id
this.getconinfo()
},
我这里的id是因为区分商品的id,如果你用不到的话,复制的时候记得删除掉,要不然会报错
这时候,我们打印的数据就变成了你想要的格式了
页面遍历
页面遍历就像遍历普通的元素那样
<view class="bottom-tab">
<text class="time">{{item.time}}</text>
<text class="comdent">{{item.content}}</text>
</view>
最终效果