请问云开发如何在获取数据库的同时格式化时间戳?
发布于 7 年前 作者 rli 6813 次浏览 来自 官方Issues

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

1 回复

// 时间戳是指格林威治时间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()

回到顶部