Поиск даты / времени в SMW

Я использую Mediawiki с расширением SMW в приватной обстановке для организации вымышленной вселенной, которую создает моя группа. У меня есть некоторые функциональные возможности, которые я хотел бы, и я хотел бы знать, есть ли расширение или возможность сделать свое собственное, которое позволило бы мне делать то, что я хочу делать.

В основном на простом английском … Я хочу знать, что происходит во вселенной в определенный момент (или продолжительность) во времени.

Я хотел бы дать пользователю возможность указать дату (простую, как год, или настолько точную, насколько это необходимо) или длительность, и возвращать каждое событие с длительностью, которая перекрывается.

Например.

  • Событие 1 начинается ~ 3200 г. до н.э. и заканчивается ~ 198 г. до н.э.
  • Событие 2 начинается ~ 509 г. до н.э. и заканчивается ~ 405 г. н.э.
  • Событие 3 начинается 15 января 1994 г. и заканчивается 17 января 41 г.
  • Событие 4 начинается ~ 409 г. до н.э. и заканчивается 14.02.2021 г.

Пользователь вводит дату (частичную, в данном случае) 309 г. до н.э.
Вики возвращает Событие 1 и Событие 4, так как данная дата находится в пределах продолжительности обоих.

Это позволило бы моим создателям запросить конкретную дату (и, возможно, продолжительность) и выяснить, какие события уже происходят, чтобы они могли скорректировать свои работы в соответствии с тем, что уже установлено. Это простая проверка конфликтов.

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

2

Решение

В SMW нет встроенного типа данных «длительность», поэтому, возможно, самый простой подход — это использовать один дата собственности для даты начала и один для даты окончания (обратите внимание, что это должно быть BC/ADне BCE/CE или похожие):

[[Event starts at::3200 BC]]
[[Event ends at::198 BC]]

Затем вы можете выполнить запрос для каждого события, которое имеет дату начала до и дату окончания после определенной даты:

{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}}

Обратите внимание, что > фактически означает «больше или равно» в синтаксисе запроса SMW.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]