Centrum Społeczności
Advertisement

Domyślnie czas na Wikii (globalny i lokalny) jest ustawiony na UTC (czas uniwersalny). Mogłoby wystarczyć dodanie parametru +1 hour lub +2 hour do funkcji #time, zależnie od aktualnej strefy czasowej. Jednak nie zawsze chcemy 2 razy na rok zmieniać parametrów na wszystkich szablonach, które używają tej funkcji. Jest pewien sposób na niemal automatyczną (z winy cache zmiany mogą nastąpić nieco później) zmianę strefy czasowej.

W Polsce, jak i w niektórych krajach europejskich daty zmian strefy czasowej przypadają na ostatnią niedzielę marca i ostatnią niedzielę października. Jeśli ktoś zna parametry date w PHP, to domyśli się, że można wyświetlić datę za pomocą parametrów last Sunday of March i last Sunday of October. To samo pojawi się, gdy użyjemy parametrów w #time. W przykładzie użyłem 3-literowych form dni i miesięcy dla skrócenia kodu.

Przykład: Dla roku 2024 daty zmian czas przypadają na 31 marca i na 27 października.

Użyta składnia:

''Dla roku {{#time:Y}} daty zmian czasu przypadają na {{#time:j xg|last Sun of Mar}} i na {{#time:j xg|last Sun of Oct}}.''

To ułatwi nam ustawienie strefy czasowej. Najprostszą metodą na sprawdzenie, jaką aktualnie strefę czasową mamy, jest #ifexpr ze znacznikami czasowymi. Ustalamy, czy aktualnie obowiązuje czas letni.

{{#ifexpr:{{#time:U}}>={{#time:U|last Sun of Mar}} and {{#time:U|last Sun of Oct}}>{{#time:U}}|letni|zimowy}}

Przykład: Aktualnie obowiązuje czas letni.

Teraz możemy np. ustawić czas lokalny według strefy czasowej:

{{#time:G:i:s|+{{#ifexpr:{{#time:U}}>={{#time:U|last Sun of Mar}} and {{#time:U|last Sun of Oct}}>{{#time:U}}|2|1}} hour}}

Najlepszym użyciem tej metody, którą ja od jakiegoś czasu używam, jest podpis. Tylko należy pamiętać o podpisywaniu się 3 tyldami. Wystarczy dodać ten kod do podpisu w preferencjach:

{{SUBST:#time: H:i, M j, Y|+{{SUBST:#ifexpr:{{SUBST:#time:U}}>={{SUBST:#time:U|last Sun of Mar}} and {{SUBST:#time:U|last Sun of Oct}}>{{SUBST:#time:U}}|2|1}} hour}} (CE{{SUBST:#ifexpr:{{SUBST:#time:U}}>={{SUBST:#time:U|last Sun of Mar}} and {{SUBST:#time:U|last Sun of Oct}}>{{SUBST:#time:U}}|S|}}T)

Ten kod może mieć szeroki wachlarz zastosowań. Warto przygotować na swojej wiki szablon, by ułatwić innym, mniej doświadczonym użytkownikom, dodawanie kodu.

Advertisement