如何将数组转为指定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
相关产品推荐
相关产品推荐

