Vuetify v-calendar: динамический дневной интервал не работает в Safari
Проблема:
Я действительно использовал календарь Vuetify для создания календаря.
Ежедневный интервал в дневном представлении должен отличаться в зависимости от времени открытия бизнеса в этот день.
Логика работает для Firefox и Chrome. Но не на сафари.
Рабочий пример:
Вот код, который я создаю, чтобы продемонстрировать эту проблему. При нажатии на дневной вид и перемещении между днями существуют различные временные диапазоны в течение дня. Ручка работает на FF и Chrome, но не на Safari.
https://codepen.io/ttezcan/pen/KKzjEMM
Это основной метод, который динамически изменяет интервал:
setIntervalByWeekday(weekday) {
console.log(weekday);
if (weekday === 7) {
weekday = 0;
}
if (weekday === -1) {
weekday = 6;
}
this.weekday = weekday;
let start = this.bussiness_hours[weekday]['start'];
let end = this.bussiness_hours[weekday]['end'];
var timeStart = new Date('2020-05-19 ' + start).getHours();
var timeEnd = new Date('2020-05-19 ' + end).getHours();
var duration = timeEnd - timeStart;
this.firstInterval = start;
this.intervalCount = duration;
},
Что я попробовал:
Мои исследования показали, что проблема в Safari возникает при изменении значений для
:first-interval= "firstInterval" и
: interval-count="intervalCount"
динамически.
Я попробовал использовать вычисленный реквизит, чтобы заставить rerender компонента.
Я пыталась дозвониться до этой.$рефов.календарь.checkChange (), чтобы заставить повторно.
У кого-нибудь есть идея, как сделать эту работу для Safari?
Ответы - Vuetify v-calendar: динамический дневной интервал не работает в Safari / Vuetify v-calendar: Dynamic Daily Interval does not work on Safari

04.10.2020 09:33:17
У разработчика Vuetify был ответ:
new Date('2020-05-19 ' + start).getHours()
Chrome анализирует это как системный часовой пояс и возвращает часы в системном часовом поясе. Safari анализирует его как UTC и возвращает часы в системном часовом поясе. Используйте luxon или date-fns, если вам нужно сделать арифметику по датам.
Thx @KaelWD