收藏
回答

小程序端如何往云数据库插入时间(Date)类型数据?

我现在有个需求是筛选某个时间段的内容,要定义DATE类型字段isodate_time用于检索,但我发现存储后还是字符串类型的,请教大佬有什么方法在添加数据的时候规定字段类型。搜索了相关解答,要设置为db.serverDate(), 可我从前端传来的是data数组, 如何追加这个字段?

云函数处理

exports.main = async(event, context) => {
    switch (event.action) {
        case 'AddWlog':
            {
                let data = event.data;
                await db.collection('TABLE_WLOG').add({
                    data: data
                })
                return {
                    msg: 'ok'
                }
            }
    }
}


发布页提交的数据

wx.cloud.callFunction({
    name: 'wlogfun',
    data: {
        action: 'AddWlog',
        data: {
            openid: wx.getStorageSync('openid'),
            content: that.data.content,
            ....
            is_delete: 0,
            //isodate_time: new Date(Date.now() + 8 * 60 * 60 * 1000),
            create_time: timeutil.TimeCode(new Date()),
            update_time: timeutil.TimeCode(new Date())
        }
    },
    ...
})



回答关注问题邀请回答
收藏

4 个回答

  • Raymond
    Raymond
    2021-03-03

    最近正好在做类似的东西,你可以在小程序端直接调用,先做云数据库方法初始化 wx.cloud.database()紧接着使用db.serverDate()这个方法。

    我给你看一个代码段你应该就明白了,直接使用服务端的时间。查询时可以使用new date("里面是时间的值"),来恢复为date类型的值

     db.collection('blog').add({
            data:{
              ...userInfo,
              content, //内容
              img: fileIds,  //图片
              createTime: db.serverDate() //服务端的时间
            }
    


    云端存储的结果:

    希望可以帮到你

    2021-03-03
    有用 1
    回复 1
    • 藏青
      藏青
      2021-03-04
      谢谢解答,我换了种方式解决了
      2021-03-04
      1
      回复
  • 陈宇明
    陈宇明
    2021-03-04

    还可以使用时间戳的形式

    2021-03-04
    有用 2
    回复
  • 烧饼
    烧饼
    2021-06-30

    如要数据库能识别的date对象,可以自己构造:

    db.collection("xxx").add({

        data: {

            time: { $date: Date.now() }

        }

    })


    2021-06-30
    有用 1
    回复
  • 林晓
    林晓
    2021-11-09

    数据转换其实是发生在 访问云函数的过程中,如果 在云函数中创建 时间对象,就不会有问题,

    2021-11-09
    有用
    回复
登录 后发表内容
问题标签