繁体   English   中英

您如何获得与一年中的周数相对应的日期

[英]How do you get a date to correspond to the week number of a year

我对 javascript 很陌生,我正在努力创建一个仪表板。 我想获得每周的订单数量,我已经能够做到。 现在,我得到了与一年中的一周相对应的数字,但是,我想得到与该周相对应的日期(星期一)。 我已经包括了我在下面的内容。 我将不胜感激有关如何执行此操作的任何帮助或指导。 谢谢!

 const weeklyOrders = await Order.aggregate([
      {
        $group: {
          _id: { $dateToString: { format: '%U', date: '$createdAt' } },
          orders: { $sum: 1 },
        },
      },
      { $sort: { _id: 1 } },
    ]);

编辑:

 const weeklyOrders = await Order.aggregate([
      {

        $group: {
          _id:{ $dateFromParts: {
            isoWeekYear: {$year: '$createdAt' },
            isoWeek: { $isoWeek: '$createdAt' },
            isoDayOfWeek: 1
          },
        },
         
            orders: { $sum: 1 },
          },
        },
        { $sort: { _id: 1 } },
      ]);

有效,但日期采用 ISO 日期格式。 我试图在下面的代码中解决这个问题,但这没有用。

 const weeklyOrders = await Order.aggregate([
      {
        $group: {
          _id:{ date: {
            $dateToString: { format: '%m-%d-%Y' },
          },
          },
            orders: { $sum: 1 },
          },
        },
        { $sort: { _id: 1 } },

      {
        $addFields:{
          date: {
            $dateFromParts: {
              isoWeekYear: {$year: '$createdAt' },
              isoWeek: { $isoWeek: '$createdAt' },
              isoDayOfWeek: 1
          }
        }
      }
    },
      ]);

您可以执行以下操作:

  1. 使用$year$isoWeek获取特定日期的年和周数
  2. 使用$dateFromParts"isoDayOfWeek": 1转换回你想要的星期一

这是Mongo 游乐场供您参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM