如何将全日历视图设置为在当前日期前 1 周开始?

How to set fullcalendar view to start 1 week before the current date?

我正在使用 fullcalendar.io (v5) Resource Timeline View 的 Vue 版本和通过设置传递的自定义视图对象,我不知道如何设置它以便日历开始当前日期前 1 周。我试过 initialDate、activeStart、visibleRange 选项,但没有成功。无论如何,它只是在当月的月初开始。相关设置代码:

    views: {
        resourceTimelineThreeMonths: {
            type: 'resourceTimeline',
            duration: { months: 3 },
            activeStart: '2021-03-06',
            initialDate: '2021-03-06',
            // dayCount: 40,
            visibleRange: {
              start: '2021-3-6',
              end: '2021-5-13'
            },
        }
    },
    expandRows: true, 
    plugins: [
      resourceCommonPlugin,
      resourceTimelinePlugin,
      interactionPlugin,
    ],

    schedulerLicenseKey: "GPL-My-Project-Is-Open-Source",
    initialView: "resourceTimelineThreeMonths"

似乎如果您使用 months 作为分母设置 duration 值,fullCalendar 将此视为您希望月份成为日历的核心时间块的标志已设置,initialDate 只是属于该时期的日期。

如果您使用较小的时间单位,那么它会更灵活 - 例如使用 weeks 将允许它在最近一周的开始而不是最近一个月的开始。如果您使用 days 作为分母,那么您将拥有更大的灵活性。

如果设置 duration 值,则 visibleRange 无效。 duration 优先于它。

此外,initialDate 不是特定于视图的选项,它必须指定为全局选项,而不是在特定视图的设置中指定,否则它无效。

所以你最终会得到这样的设置:

views: {
  resourceTimelineThreeMonths: {
    type: "resourceTimeline",
    duration: { weeks: 12 },
  }
},
initialDate: "2021-03-06",
//...etc

演示使用 weekshttps://codepen.io/ADyson82/pen/OJbqJxZ

演示使用 dayshttps://codepen.io/ADyson82/pen/wvoOvpx

使用静态 visibleRange 的演示:https://codepen.io/ADyson82/pen/rNWRNJa


P.S。没有 activeStart 这样的选项,不确定你从哪里得到的?