收藏
回答

云开发有便捷生成日期区间的数组吗?

比如我只给开始和结束时间,有什么api可以直接生成一个,从开始到结束的区间数组吗?

因为我想搞一个数据统计,确定每一天都有,哪怕是0呢。不然就只会显示对应有数据的那天,中间就会空几个。

.group({
_id: '$createTime', //根据日期进行分组,只会显示有数据的那一天
})

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

1 个回答

  • 誰
    2022-09-01
    const dateRange = 7 //7天的区间
    const day = 86400000 //60 * 60 * 1000 * 24
    const now = $.dateFromString({
    //当前时间
    //将日期字符串转化为日期对象
    dateString: '2022-09-01'
    })
    db.collection('deal').aggregate()
    .project({
    //数字遍历
    createTime: $.map({
    input: $.range([0, dateRange]), //$.range 生成一个区间数组 这里传的7,[0,1,2,3,4,5,6]
    as: 'item',
    in: $.dateToString({
    //将日期对象格式化为 年月日
    //$.multiply 相乘 0*day 1*day 2*day ...
    //$.subtract 相减 now-0*day now-1*day now-2*day ...
    date: $.subtract([now, $.multiply(['$$item', day])]),
    format: '%Y-%m-%d'
    }),
    })
    }).end()
    

    仅供参考哈~~ dateRange = 7 就是最近7天了


    2022-09-01
    有用
    回复
登录 后发表内容