К примеру, результат:

<script>
var date = new Date();
document.write(date.getTimezoneOffset());
</script>

Передать в variable? Для дальнейшего использования в twig date_modify?

  • reazzon и Koresh ответили на это сообщение.

    MaxxQ90 Вам нужно сделать $.request с помощью AJAX фреймворка OctoberCMS, обработать в хандлере, и вернуть ответ в виде обновленного фрагмента.

    https://octobercms.com/docs/ajax/update-partials

    • MaxxQ90 ответили на это сообщение.

      MaxxQ90
      js - это браузер
      php - это сервер

      JS-ом можно напрямую в доме изменить элемент. Аяксом можно данные передать на сервер, но ответ вернётся опять же в js.
      Да и твиг в бэкенде вроде как не работает. Зато в бэкенде есть есть Настройки панели управления где можно задать часовой пояс.

      • MaxxQ90 ответили на это сообщение.

        reazzon, ок, буду изучать.

        Koresh, мне нужно получить timezone посетителя, нашел варианты только на js (moment, dayjs и т.п.) и передать в {{ variable }} и использовать в шаблоне как:

        {{ (record.time)|date_modify('+' ~ variable ~ 'mins')|date('H:i d.m.Y') }}

        Посетитель получит дату/время с учетом его часового пояса. Настройки панели управления тут вряд ли помогут.

        • Koresh ответили на это сообщение.

          MaxxQ90 Так это для фронта а не для бэкенда?

          • MaxxQ90 ответили на это сообщение.

            Koresh, сами данные в бэкенде мне не нужны, но результат js должен передаться в variable (а это разве не бэкенд?)

            • Koresh ответили на это сообщение.

              reazzon не могли бы чуть подробнее расписать процесс? Что-то у меня вообще не получается((

              • reazzon ответили на это сообщение.
                • Изменено

                MaxxQ90 .htm компонентов и тем - это фронт.

                Думаю это плохая идея гонять аякс запрос на сервер ради такой задачи. Лучше просто вывести пустой тег спан и js-ом заполнить его нужным вам значением. Если изначально нужно какое то значение с сервера передать, то просто засунуть его в дата-атрибут

                <span data-time="....."></span>
                • MaxxQ90 ответили на это сообщение.

                  Koresh т.е. результат js вывести на странице в <span>?, а как потом из <span> забрать этот результат в var?

                  • Koresh ответили на это сообщение.

                    MaxxQ90 результат js вывести на странице в <span>, а потом из <span> забрать этот результат в var

                    в цитате убрал лишнее для упрощения. Понимаете смысл своего вопроса? - Вставить чтоб потом получить.

                    • MaxxQ90 ответили на это сообщение.

                      Koresh , может так будет понятнее.

                      Вот данный скрипт, к примеру

                      <script>
                      var date = new Date();
                      document.write(date.getTimezoneOffset());
                      </script>

                      Выводит на странице разницу в минутах между локальным временем посетителя и UTC, к примеру "180" (если МСК).

                      Всё что мне нужно, это получить результат выполнения этого скрипта в {{ variable }} и вставить в
                      {{ record.time|date_modify('+' ~ variable ~ 'mins')|date('H:i d.m.Y') }}
                      а шаблоне. Итогом будут вывод даты/времени с учетом таймзоны.

                      Koresh Лучше просто вывести пустой тег спан и js-ом заполнить его нужным вам значением.

                      Можно подробнее, как это реализовать для решения моей задачи?

                      • Koresh ответили на это сообщение.
                        • Изменено

                        MaxxQ90 Можно подробнее, как это реализовать для решения моей задачи?

                        Я имел ввиду по такой схеме:

                        <span id="time" data-time="{{ record.time }}"></span>
                        
                        <script>
                            var span = document.getElementById('time');
                            var t = span.dataset.time; // получение значения из дата-атрибута
                        
                        
                            var time = .... // делаете нужные манипуляции с переменной t
                        
                        
                            span.textContent = time; // вставляете полученное значение как текст в спан
                        </script>
                        • MaxxQ90 ответили на это сообщение.

                          Koresh ,попробую, спасибо.