Vuetify v-calendar: динамический дневной интервал не работает в Safari


Vuetify v-calendar: динамический дневной интервал не работает в Safari

02.10.2020 03:34:22 Просмотров 2 Источник

Проблема:
Я действительно использовал календарь 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

Является ответом!
Tolga

04.10.2020 09:33:17

У разработчика Vuetify был ответ:

new Date('2020-05-19 ' + start).getHours()

Chrome анализирует это как системный часовой пояс и возвращает часы в системном часовом поясе. Safari анализирует его как UTC и возвращает часы в системном часовом поясе. Используйте luxon или date-fns, если вам нужно сделать арифметику по датам.

Thx @KaelWD

Помочь в развитии проекта:
Закрыть X