Zeitzone und Sommer-/Winterzeitumstellung

Geändert am Wed, 25 Jan 2017 um 05:02 PM

Der Wechsel zwischen Sommer- und Winterzeit kann dazu führen, dass Zeitangaben in Contrexx/Cloudrexx sich um wenige Stunden (für genaue Angabe siehe Abschnitt "Details") verschieben. Insbesondere im Veranstaltungskalender ist dieses Problem ab der Version 3.2 bekannt (siehe Bug #2783).


Die Hotfix-Pakete "Daylight Saving Time Hotfix" beheben das Problem im Kalender, sowie in allen anderen Anwendungen (Einschränkungen siehe Abschnitt "Details") für die Versionen 3.2 und 4.0: https://www.cloudrexx.com/de/index.php?section=downloads&cmd=7&category=94


Einspielen des Hotfixes

Um den Fix einzuspielen, führen Sie die folgenden Schritte aus:

  1. Laden Sie das für Ihre Version passende Hotfix-Paket von obenstehendem Link herunter
  2. Entpacken Sie die Datei und lesen Sie die Datei README.txt aufmerksam durch
  3. Laden Sie die Datei /config/configuration.php von Ihrem Webspace ins Verzeichnis /config/configuration.php (im Hotfix-Paket) herunter
  4. Bearbeiten Sie die Datei /config/configuration.php (im Hotfix-Paket) und setzen Sie den Wert von $_DBCONFIG['timezone'] auf "UTC".
    Der entsprechende Code in der Datei /config/configuration.php sollte dann wie folgt aussehen:
    $_DBCONFIG['timezone'] = 'UTC'; // Controller's timezone for model
  5. Führen Sie die folgenden SQL-Statements in der Datenbank Ihrer Contrexx-Installation aus:

       

     
    INSERT INTO `contrexx_component` (`id`, `name`, `type`) VALUES (112, 'DateTime', 'core');
    INSERT INTO `contrexx_modules` (`id`, `name`, `distributor`, `description_variable`, `status`, `is_required`, `is_core`, `is_active`, `is_licensed`) VALUES (112,'DateTime','Cloudrexx AG','TXT_CORE_DATETIME_DESCRIPTION','n',1,1,1,1); 
      

       

     
  6. Laden Sie die Dateien aus dem Paket (inkl. der Datei configuration.php, ohne README.txt) auf Ihren Webspace hoch. Stellen Sie sicher, dass alle Dateien erfolgreich hochgeladen wurden.


Korrektur von falschen Kalendereinträgen

Kalendereinträge, deren Start- und/oder Enddatum in der Sommerzeit liegt, die während der Winterzeit erstellt wurden, werden beim Einspielen des Hotfixes um eine Stunde verschoben. Dasselbe geschieht wenn während der Sommerzeit Einträge erfasst wurden, welche während der Winterzeit stattfinden. Dies kann mit einfachen SQL-Abfragen behoben werden.

Welche SQL-Abfragen genau verwendet werden müssen ist abhängig davon, ob die Einträge während der Sommer- oder der Winterzeit erfasst wurden. Die folgenden Abfragen beheben das Problem für alle Einträge der nächsten 10 Jahre. Bereits vergangene Veranstaltungen werden damit nicht korrigiert.


Einzelne Kalendereinträge nach der Zeitumstellung erfasst?

Falls nach der Zeitumstellung bereits neue Kalendereinträge erfasst wurden, werden diese durch die folgende SQL-Abfrage um 1 Stunde verschoben. In diesem Fall muss die Start- und Endzeit der neu erfassten Kalendereinträge, nach Ausführung der folgenden SQL-Abfrage, manuell um die Abweichung zu UTC zurück korrigiert werden.

 

Die folgenden Abfragen beheben das Problem für im Sommer stattfindende Einträge der nächsten 10 Jahre, die während der Winterzeit erfasst wurden:

UPDATE
    `contrexx_module_calendar_event`
SET
    `startdate` = DATE_SUB(
        `startdate`,
        INTERVAL 1 HOUR
    )
WHERE
        `startdate` BETWEEN '2016-03-27 02:00:00' AND '2016-10-30 03:00:00' OR
        `startdate` BETWEEN '2017-03-26 02:00:00' AND '2017-10-29 03:00:00' OR
        `startdate` BETWEEN '2018-03-25 02:00:00' AND '2018-10-28 03:00:00' OR
        `startdate` BETWEEN '2019-03-31 02:00:00' AND '2019-10-27 03:00:00' OR
        `startdate` BETWEEN '2020-03-29 02:00:00' AND '2020-10-25 03:00:00' OR
        `startdate` BETWEEN '2021-03-28 02:00:00' AND '2021-10-31 03:00:00' OR
        `startdate` BETWEEN '2022-03-27 02:00:00' AND '2022-10-30 03:00:00' OR
        `startdate` BETWEEN '2023-03-26 02:00:00' AND '2023-10-29 03:00:00' OR
        `startdate` BETWEEN '2024-03-31 02:00:00' AND '2024-10-27 03:00:00' OR
        `startdate` BETWEEN '2025-03-30 02:00:00' AND '2025-10-26 03:00:00';
UPDATE
    `contrexx_module_calendar_event`
SET
    `enddate` = DATE_SUB(
        `enddate`,
        INTERVAL 1 HOUR
    )
WHERE
        `enddate` BETWEEN '2016-03-27 02:00:00' AND '2016-10-30 03:00:00' OR
        `enddate` BETWEEN '2017-03-26 02:00:00' AND '2017-10-29 03:00:00' OR
        `enddate` BETWEEN '2018-03-25 02:00:00' AND '2018-10-28 03:00:00' OR
        `enddate` BETWEEN '2019-03-31 02:00:00' AND '2019-10-27 03:00:00' OR
        `enddate` BETWEEN '2020-03-29 02:00:00' AND '2020-10-25 03:00:00' OR
        `enddate` BETWEEN '2021-03-28 02:00:00' AND '2021-10-31 03:00:00' OR
        `enddate` BETWEEN '2022-03-27 02:00:00' AND '2022-10-30 03:00:00' OR
        `enddate` BETWEEN '2023-03-26 02:00:00' AND '2023-10-29 03:00:00' OR
        `enddate` BETWEEN '2024-03-31 02:00:00' AND '2024-10-27 03:00:00' OR
        `enddate` BETWEEN '2025-03-30 02:00:00' AND '2025-10-26 03:00:00';

 

Die folgenden Abfragen beheben das Problem für im Winter stattfindende Einträge der nächsten 10 Jahre, die während der Sommerzeit erfasst wurden:  

UPDATE
    `contrexx_module_calendar_event`
SET
    `startdate` = DATE_ADD(
        `startdate`,
        INTERVAL 1 HOUR
    )
WHERE
        `startdate` NOT BETWEEN '2015-03-29 02:00:00' AND '2015-10-25 03:00:00' AND
        `startdate` NOT BETWEEN '2016-03-27 02:00:00' AND '2016-10-30 03:00:00' AND
        `startdate` NOT BETWEEN '2017-03-26 02:00:00' AND '2017-10-29 03:00:00' AND
        `startdate` NOT BETWEEN '2018-03-25 02:00:00' AND '2018-10-28 03:00:00' AND
        `startdate` NOT BETWEEN '2019-03-31 02:00:00' AND '2019-10-27 03:00:00' AND
        `startdate` NOT BETWEEN '2020-03-29 02:00:00' AND '2020-10-25 03:00:00' AND
        `startdate` NOT BETWEEN '2021-03-28 02:00:00' AND '2021-10-31 03:00:00' AND
        `startdate` NOT BETWEEN '2022-03-27 02:00:00' AND '2022-10-30 03:00:00' AND
        `startdate` NOT BETWEEN '2023-03-26 02:00:00' AND '2023-10-29 03:00:00' AND
        `startdate` NOT BETWEEN '2024-03-31 02:00:00' AND '2024-10-27 03:00:00' AND
        `startdate` NOT BETWEEN '2025-03-30 02:00:00' AND '2025-10-26 03:00:00' AND
        `startdate` > '2015-03-29 02:00:00';
UPDATE
    `contrexx_module_calendar_event`
SET
    `enddate` = DATE_ADD(
        `enddate`,
        INTERVAL 1 HOUR
    )
WHERE
        `enddate` NOT BETWEEN '2015-03-29 02:00:00' AND '2015-10-25 03:00:00' AND
        `enddate` NOT BETWEEN '2016-03-27 02:00:00' AND '2016-10-30 03:00:00' AND
        `enddate` NOT BETWEEN '2017-03-26 02:00:00' AND '2017-10-29 03:00:00' AND
        `enddate` NOT BETWEEN '2018-03-25 02:00:00' AND '2018-10-28 03:00:00' AND
        `enddate` NOT BETWEEN '2019-03-31 02:00:00' AND '2019-10-27 03:00:00' AND
        `enddate` NOT BETWEEN '2020-03-29 02:00:00' AND '2020-10-25 03:00:00' AND
        `enddate` NOT BETWEEN '2021-03-28 02:00:00' AND '2021-10-31 03:00:00' AND
        `enddate` NOT BETWEEN '2022-03-27 02:00:00' AND '2022-10-30 03:00:00' AND
        `enddate` NOT BETWEEN '2023-03-26 02:00:00' AND '2023-10-29 03:00:00' AND
        `enddate` NOT BETWEEN '2024-03-31 02:00:00' AND '2024-10-27 03:00:00' AND
        `enddate` NOT BETWEEN '2025-03-30 02:00:00' AND '2025-10-26 03:00:00' AND
        `enddate` > '2015-03-29 02:00:00';

     


Details

Beim Einspielen des Hotfixes werden einige Zeiten von bestehenden Einträgen in gewissen Anwendungen verschoben. Welche Anwendungen davon inwieweit betroffen sind lässt sich aus folgender Tabelle ablesen. Wie sich die Zeiten genau verschieben ist abhängig von der jeweiligen Anwendung, der eingestellten Zeitzone, sowie ob der Hotfix bei Sommer- oder Winterzeit eingespielt wird.

Diese verschobenen Werte, sowie alle neu eingetragenen Werte bleiben nun beim Wechsel zwischen Sommer- und Winterzeit konstant.


Anwendung Auswirkung
Content Manager Die Zeitangaben für die letzte Änderung (der Inhaltsseiten, sowie der Einträge des Verlaufs) und die zeitgesteuerte Veröffentlichung können sich verschieben
News Artikel Die zeitgesteuerte Veröffentlichung kann sich verschieben
Datei Sharing Das Ablaufdatum einer freigegebenen Datei kann sich verschieben
E-Commerce Shop Start- und Enddatum von Produkten, sowie die Zeit einer Bestellung und die Bearbeitungszeit einer Bestellung können sich verschieben
Gästebuch Die Zeit, wann ein Eintrag erstellt wurde kann sich verschieben
Online-Desk
Das Datum einer Bestellung kann sich verschieben
Stellenangebote
Start- und Enddatum können sich verschieben
User to User Nachrichten Die "Erhalten"-Zeit kann sich verschieben


Der maximale Fehler bei der Zeitumstellung ist gleich der absoluten Differenz zwischen der eingestellten Zeitzone (vor Einspielung des Hotfixes) und UTC im Winter, plus der absoluten Differenz zwischen Sommer- und Winterzeit.

 

Rechenbeispiel für die Zeitzone "Europe/Paris" (Voreinstellung):

Voreingestellte Zeitzone: "Europe/Paris"

Differenz zwischen der eingestellten Zeitzone und UTC im Winter: UTC+1 -> 1h

Plus die Differenz zwischen Sommer- und Winterzeit: 1h

Ergebnis: 2h

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren