请问云开发如何在获取数据库的同时格式化时间戳?

发布于 8 年前作者 rli6926 次浏览最后编辑 8 年前来自 issues

感觉可以通过聚合操作实现,但是API中并没有处理时间戳的

WXOPEN Club 内容图片
1 回复
jing26
jing261 楼6 年前

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

// dateBase为起点ISODate

let dateBase = $.dateFromParts({year: 1970, month: 1, day: 1, hour: 8, minute: 0, second: 0, millisecond: 0, timezone: ‘Asia/Shanghai’})

// 时间戳转日期 = 起点ISODate + 13位的时间戳(即包括毫秒)

// timestamp为时间戳Number型字段,如果是13位就直接是’$timestamp’,如果是10位,则要乘以1000,即$.multiply([‘$timestamp’, 1000])

let timstampToDate = $.add([dateBase, $.multiply([‘$timestamp’, 1000])])

return db.collection(‘xxxx’).aggregate()

    .addFields({

    formatDate: $.dateToString({

        date: timstampToDate,

        format: ‘%Y-%m-%d %H:%M:%S.%L’,

        timezone: ‘Asia/Shanghai’

    })

})

.end()