Настройка времени в modx revo

Со временем в modx полностью никак не разберусь.
1. Если в настройках modx задать [server_offset_time = 1], то modx должен считать, что локальное время, отображаемое в админке, должно на час превышать локальное время сервера. В частности, время изменения файла, отображаемое на странице редактирования файла в modx, должно на (server_offset_time) часов превышать серверное время изменения файла. Что получаем на практике (всё наоборот):

а) время изменения файла, отображаемое на странице редактирования файла в modx, отображается серверное, независимо от значения (server_offset_time)
б) время изменения файла, отображаемое в WinSCP, на (server_offset_time) превышает серверное время изменения файла. Как такое может быть? Ведь время изменения файла фиксирует операционная система (Debian) и никакие настройки modx на это время повлиять не могут. Не уж то modx вручную корректирует время изменения файла, подстраивая его под (server_offset_time)?

Здесь под серверным временем изменения файла понимается время изменения, зафиксированное в свойствах файла ОС (UTC) и откорректированное под локальное время сервера в соответствии с date.timezone сервера.
Cyrax_02
09 ноября 2014, 18:19
modx.pro
5 971
0

Комментарии: 3

Cyrax_02
09 ноября 2014, 22:37
0
а) время изменения файла, отображаемое на странице редактирования файла в modx, отображается серверное, независимо от значения (server_offset_time)

Как оказалось, время изменения файла, отображаемое на странице редактирования файла в modx, — это не серверное время и не локальное время админа. Это время, соответствующее php-настройке date.timezone (в моём случае оно совпадает с серверным временем). Т.е. modx просто считывает дату файла с помощью filemtime (все php-функции, работающие со временем, используют date.timezone) и отображает её в строковом виде. Никаких преобразований времени не производит.
Хотя логичнее было бы преобразовать это время сначала в UTC, затем в серверное, затем в локальное админское (с учётом server_offset_time) и только после этого отображать.

Аналогично modx поступает и с отображением даты публикации/создания/модификации ресурса — считывает из БД и отображает без всяких преобразований (этот факт делает нецелесообразным использование настройки date.timezone = UTC, которая в определённом смысле является более корректным вариантом).

Здесь возникает 2 вопроса:
1) Зачем нужна настройка server_offset_time?
2) Почему (и каким образом) при задании ненулевого server_offset_time время изменения файла, отображаемое в WinSCP, на server_offset_time превышает серверное время изменения файла?
    R2m0x94 (Vasily)
    18 октября 2021, 14:52
    0
    Тоже не понял, как настройка server_offset_time сможет включить NTP синхронизацию? Пробовал -3 и 3, результата не дало на минус и плюс 3 часа по гринвичу.
    <?php
    print shell_exec(escapeshellcmd('timedatectl'));
    R2m0x94 (Vasily)
    18 октября 2021, 15:31
    0
    Делал по инструкциям, но результат один и тот же:
    Local time: Mon 2021-10-18 15:28:28 MSK
      Universal time: Mon 2021-10-18 12:28:28 UTC
            RTC time: Mon 2021-10-18 15:24:27
           Time zone: Europe/Moscow (MSK, +0300)
         NTP enabled: no
    NTP synchronized: no
     RTC in local TZ: yes
          DST active: n/a
    
    Warning: The system is configured to read the RTC time in the local time zone.
             This mode can not be fully supported. It will create various problems
             with time zone changes and daylight saving time adjustments. The RTC
             time is never updated, it relies on external facilities to maintain it.
             If at all possible, use RTC in UTC by calling
             'timedatectl set-local-rtc 0'.
    
    Есть ли решение, как активировать NTP enabled: no в NTP enabled: yes?
    тобс: в Network time on: yes и NTP synchronized: yes
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3