You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数组转为指定JS对象?flatpickr禁用数组为何失效?

两个关于日期处理与flatpickr配置的问题

问题1:将模板渲染生成的数组转换为指定格式的对象集合

我通过模板渲染获取到一个数组,代码如下:

var dateUnvailableCalendar = {{ datesUnvailable|json_encode|raw }};

希望将其转换为如下格式的对象集合:

{
    'from': '2023-03-06 00:00',
    'to': '2023-03-13 00:00'
},
{
    'from': '2023-03-01 00:00',
    'to': '2023-03-01 00:00'
}

请问该如何实现?

问题2:flatpickr的disable数组传入嵌套数组无法生效的原因

配置flatpickr日历组件时,直接在disable数组中写入上述格式的对象可正常禁用日期,有效代码如下:

calendar.flatpickr({
  disable: [
    function (date) {
      return date.getDay()===dayWeek[0]||
        date.getDay()===dayWeek[1]||
        date.getDay()===dayWeek[2]||
        date.getDay()===dayWeek[3]||
        date.getDay()===dayWeek[4]||
        date.getDay()===dayWeek[5]||
        date.getDay()===dayWeek[6]
    },
    {
      'from': '2023-03-06 00:00',
      'to': '2023-03-13 00:00'
    },
    {
      'from': '2023-03-01 00:00',
      'to': '2023-03-01 00:00'
    }
  ],
  minDate: "today",
  onChange: function (selectedDates, dateStr) {
    calendarHandleChange(dateStr);
  }
});

但将上述对象数组作为disable的一个元素传入时却无法生效,无效代码如下:

calendar.flatpickr({
    disable: [
        function(date) {
            return date.getDay() === dayWeek[0] ||
                date.getDay() === dayWeek[1] ||
                date.getDay() === dayWeek[2] ||
                date.getDay() === dayWeek[3] ||
                date.getDay() === dayWeek[4] ||
                date.getDay() === dayWeek[5] ||
                date.getDay() === dayWeek[6]
        },
        [
            {"from":"2023-03-06 00:00","to":"2023-03-13 00:00"},
            {"from":"2023-03-01 00:00","to":"2023-03-01 00:00"}
        ]
    ],
    minDate: "today",
    onChange: function (selectedDates, dateStr) {
        calendarHandleChange(dateStr);
    }
});

请问这是什么原因?


内容的提问来源于stack exchange,提问作者CHRISCOM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:07:45