Fix offset calculation in Date/Time/Relative
authorTim Düsterhus <duesterhus@woltlab.com>
Mon, 2 Nov 2020 11:03:28 +0000 (12:03 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Mon, 2 Nov 2020 11:04:10 +0000 (12:04 +0100)
wcfsetup/install/files/js/WoltLabSuite/Core/Date/Time/Relative.js
wcfsetup/install/files/ts/WoltLabSuite/Core/Date/Time/Relative.ts

index dd3eb78ac59f8b57e771b16dbc915c09516a9bca..0d00a0a41cee65ada531d8c65e750e5261a8a8cb 100644 (file)
@@ -42,8 +42,6 @@ define(["require", "exports", "tslib", "../../Core", "../Util", "../../Dom/Chang
         }
         const date = new Date();
         const timestamp = (date.getTime() - date.getMilliseconds()) / 1000;
-        if (_offset === null)
-            _offset = timestamp - window.TIME_NOW;
         document.querySelectorAll("time").forEach((element) => {
             rebuild(element, date, timestamp);
         });
@@ -96,6 +94,7 @@ define(["require", "exports", "tslib", "../../Core", "../Util", "../../Dom/Chang
      * Transforms <time> elements on init and binds event listeners.
      */
     function setup() {
+        _offset = Math.trunc(Date.now() / 1000 - window.TIME_NOW);
         new Repeating_1.default(refresh, 60000);
         Listener_1.default.add("WoltLabSuite/Core/Date/Time/Relative", refresh);
         document.addEventListener("visibilitychange", onVisibilityChange);
index 3b1aaf055f0ed13817df2a56833708d147ae686e..507dbd404c94021070c008df0848746d42571478 100644 (file)
@@ -42,7 +42,6 @@ function refresh() {
 
   const date = new Date();
   const timestamp = (date.getTime() - date.getMilliseconds()) / 1_000;
-  if (_offset === null) _offset = timestamp - window.TIME_NOW;
 
   document.querySelectorAll("time").forEach((element) => {
     rebuild(element, date, timestamp);
@@ -103,6 +102,8 @@ function rebuild(element: HTMLTimeElement, date: Date, timestamp: number): void
  * Transforms <time> elements on init and binds event listeners.
  */
 export function setup(): void {
+  _offset = Math.trunc(Date.now() / 1_000 - window.TIME_NOW);
+
   new RepeatingTimer(refresh, 60_000);
 
   DomChangeListener.add("WoltLabSuite/Core/Date/Time/Relative", refresh);