首页 > 解决方案 > Cube.js React QueryBuilder:如果月份在周中发生变化,“本月”和“每周”不会从周初获取数据

问题描述

我理解如果月份从中间开始,为什么"This month"结合"Weekly"不能获得整周的数据。例如,从 9 月 27 日开始的那一周仍然显示为开始,但数据仅在设置过滤器2021-09-27时取自,这是有道理的,但有时我们希望获得整周,即使月份在周中更改但我们不想设置更广泛的过滤器(甚至需要考虑太多周)。我尝试追溯 TimeDimensions 函数并在组件处结束,但它已导入,因此我看不到组件接受的内容,或者您​​是否可以添加. 有人对如何使这项工作有任何建议吗?2021-10-01"This month""This quarter""This year""QueryBuilder""updateTimeDimensions"from '@cubejs-client/react'"Time Dimension""This month + full weeks"

标签: reactjscube.js

解决方案


在将日期输入查询 time_dimensions 之前,您始终可以在前端操作日期。

定义一个函数,它接受你的 dateRange ['2021-10-1', '2021-10-31'] 并返回一个包含已完成周数的 dateRange,这可以使用 date-fns 或 moment.js 或 day.js。并在您选择“每周”时调用该函数。

这是一个必要的例子

dateRange: any = [new Date('2021-10-1'), new Date('2021-10-31')];
startAndendWeeksIncluded = [
    startOfWeek(this.dateRange[0], { weekStartsOn: 1 }),
    endOfWeek(this.dateRange[1], { weekStartsOn: 1 }),
  ];
 
//OutPut ["2021-09-26T23:00:00.000Z", "2021-10-31T22:59:59.999Z"]

推荐阅读