首页 > 解决方案 > JS - 如何实现 YTD(年初至今)逻辑以进行日期选择

问题描述

我正在尝试在 vue-chartjs 中实现日期选择的方法。这是我在方法生命周期挂钩中使用的函数:

DateSelect(event) {
  const period = event.target.value
  let minValue = new Date(Math.max(...this.date) * 1000)
  const axisXMin = new Date(Math.min(...this.date) * 1000)

  switch (period) {
  case '1m':
    minValue.setMonth(minValue.getMonth() - 1)
    break
  case '3m':
    minValue.setMonth(minValue.getMonth() - 3)
    break
  case 'ytd':
    minValue.setFullYear(minValue.getFullYear() - minValue.getMonth())  //Here I want to implement the YTD Logic.
    break
  default:
    minValue = axisXMin
  }
  const data = this.data.filter(el => {
    return el.x >= minValue
  })
  this.GraphOutput(data) // this is vue-chartjs function.
}

这里的逻辑“1m”和“3m”工作得很好,因为当点击相应的按钮时,它们会向用户显示前 1 个月和 3 个月的图表。

我想知道如何在我上面使用的函数中实现 YTD(年初至今)逻辑。请帮帮我。

标签: vue.jsvue-chartjs

解决方案


据我了解,您可能需要图表中的一整年数据。因此,您需要设置最小值,如下所示:

case 'ytd':
    minValue.setYear(minValue.getFullYear() - 1);
    break

推荐阅读