1.先讲一下自己的需求:
我定义了一个对象数组:
//xiangqing.js
data:{
//评论者的信息
comments:[
{
comment_UserImgUrl:"",
comment_NickName:"",
comment_time:"", //评论的时刻,字符串化,如:‘2020/03/16 下午13:01’
comment_time_date:new Date(), //评论的时刻 date类型变量
comment_calculatedTime:"", //评论的距今时间 如: ‘...分钟/小时/天前’
comment_content:""
}
],
}
comments数组的赋值:
//xiangqing.js
onLoad: function (options) {
let that=this
that.setData({
_id:options._id, //接受上一个页面传递过来的参数_id
})
wx.cloud.init({
env:'test'
})
//查询ForumPost集合中指定_id的记录,
//并将记录中comments字段赋值给this.data.comments
const db=wx.cloud.database()
db.collection("ForumPost").doc(that.data._id).get({
success:function(res){
that.setData({
comments:res.data.comments //对象数组可以整体赋值
})
}
})
}
现在要更新this.data.comments数组中每个对象的comment_calculatedTime,它是用户打开该帖子的时间戳和该帖子发表的时间戳的差。我定义了一个云函数实现,传递参数为comment_time_date(帖子的发表时刻):
//HandlePublishTime_2.js
//HandlePublishTime_2传过来的参数为postTime_date,即单个date类型的变量
//返回的result.calculatedTime是date变量值的距今时间
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event