Öffnungszeiten · Jimdo Creator

Jimdo:
automatisch anzeigen, ob gerade geöffnet ist

Ihre Öffnungszeiten stehen auf der Website, und trotzdem ruft jemand an und fragt, ob heute offen ist. Das liegt meistens daran, dass niemand gern nachrechnet, ob Samstag um 14 Uhr noch in die Öffnungszeit fällt.

Ein kleiner Zusatz auf Ihrer Seite nimmt Ihren Besuchern das ab. Dort steht dann ein Satz, der sich selbst aktualisiert: „Jetzt geöffnet, bis 18:00 Uhr“ oder „Geschlossen, wieder geöffnet morgen ab 09:00 Uhr“.

Die Wochentage rechnet er von selbst, Feiertage und Betriebsferien tragen Sie einmal im Jahr nach.

Ein paar Zeilen Code

Mit Jimdo-Bordmitteln geht es nicht, mit ein paar Zeilen Code in einem HTML-Widget schon.

Selbst oder mit Feiertagen

Selbst einbauen können Sie den Hinweis mit dem Code weiter unten. Feiertage kennt diese Fassung nicht, die Liste dafür ergänze ich, wenn ich den Einbau übernehme.

Liste bleibt stehen

Ihre normale Liste der Öffnungszeiten bleibt trotzdem auf der Seite, denn nur die übernimmt Google.

Wer am Dienstag um 11 Uhr auf Ihre Seite schaut, sieht:

Jetzt geöffnet, bis 12:30 Uhr

Wer am Samstag um 15 Uhr schaut, sieht:

Geschlossen, wieder geöffnet am Montag ab 09:00 Uhr

Samstags ist um 14 Uhr Schluss, sonntags zu. Also: Montag.

Zwei Beispiele für ein Geschäft mit Mittagspause, samstags bis 14 Uhr, sonntags zu. Das sind die Zeiten aus dem Code weiter unten.

Was das im Alltag bringt

  • Weniger Anrufe, in denen es nur um die Öffnungszeit geht.
  • Wer abends auf dem Handy sucht, sieht sofort, ob sich der Weg morgen lohnt.
  • Mittagspause, Ruhetag und verkürzter Samstag werden richtig mitgerechnet.

Geht das mit Jimdo?

Ein fertiges Element dafür hat Jimdo nicht, und über den Support bekommen Sie es auch nicht.

Der Hinweis besteht aus einem kurzen JavaScript, also Code, den der Browser Ihrer Besucher direkt auf der Seite ausführt. Laufende Kosten entstehen dadurch keine, und ein zusätzliches Programm brauchen Sie nicht. Ändern sich Ihre Zeiten, wird eine Zeile angepasst.

Alles auf dieser Seite gilt für Jimdo Creator, denn dort lässt sich eigener Code einbauen. Jimdo Dolphin betreue ich nicht.

Wenn Sie nicht wissen, welche Version Sie haben, hilft meist ein Blick in den Editor: Beim Creator ist es der klassische Editor, in dem Sie Elemente frei auf der Seite platzieren und eigenen Code einfügen können. Dolphin arbeitet mit fertigen Abschnitten, und die Seite wird dort fast immer über einen Assistenten eingerichtet.

So läuft es ab

  1. Sie schicken mir Ihre Öffnungszeiten, so formlos, wie Sie sie auch auf einen Zettel schreiben würden. Feiertage und geplante Betriebsferien am besten gleich dazu.
  2. Ich baue den Hinweis dort ein, wo Sie ihn haben wollen, und schicke Ihnen einen Link zum Anschauen.
  3. Stimmt alles, bleibt er so stehen, und im Alltag müssen Sie sich um nichts weiter kümmern.
Was Sie vorher wissen sollten

Der Hinweis rechnet immer mit deutscher Uhrzeit, auch wenn jemand Ihre Seite aus einer anderen Zeitzone aufruft.

Für Österreich und die Schweiz passt das genauso, dort gilt dieselbe Uhrzeit. Nur wenn die Uhr auf dem Gerät Ihrer Besucher ganz falsch gestellt ist, kann auch der Hinweis danebenliegen.

Die Öffnungszeiten zusätzlich als Text stehen lassen

Google übernimmt den automatischen Hinweis nicht als Ihre Öffnungszeiten. Dafür braucht es die normale Textliste auf Ihrer Seite und die Angaben in Ihrem Google-Unternehmensprofil. Der Hinweis ist für Ihre Besucher gedacht, die Liste für Google.

Die alte Liste zu löschen, weil der neue Hinweis schöner aussieht, passiert leicht. Lassen Sie sie deshalb bewusst stehen.

Für alle, die es selbst einbauen wollen

Der Code kommt in ein HTML-Widget, und zwar dorthin, wo der Hinweis erscheinen soll. Die Beschreibung bezieht sich auf Jimdo Creator.

Zeiten eintragen, Code mitnehmen

Tragen Sie Ihre Zeiten hier ein. Die Vorschau zeigt sofort, was Ihre Besucher gerade sehen würden. Der Code darunter enthält Ihre Zeiten schon. Leere Felder heißen: an diesem Tag geschlossen.

So sähe der Hinweis jetzt aus:
Wird berechnet …
Ihr Code für das HTML-Widget:


Hier wird nichts gespeichert und nichts gesendet. Feiertage kennt auch dieser Code nicht.

Lieber von Hand? Hier ist der Code mit den Beispielzeiten. Ihre Zeiten tragen Sie oben ein. 0 steht für Sonntag, 1 für Montag und so weiter, leere Klammern heißen: an diesem Tag geschlossen.

<p id="oeffnungsstatus">Öffnungszeiten werden geladen …</p>

<script>
(function () {
  var ZEITEN = {
    1: [["09:00", "12:30"], ["14:00", "18:00"]],
    2: [["09:00", "12:30"], ["14:00", "18:00"]],
    3: [["09:00", "12:30"], ["14:00", "18:00"]],
    4: [["09:00", "12:30"], ["14:00", "18:00"]],
    5: [["09:00", "16:00"]],
    6: [["10:00", "14:00"]],
    0: []
  };

  var TAGE = ["Sonntag", "Montag", "Dienstag", "Mittwoch",
              "Donnerstag", "Freitag", "Samstag"];

  function minuten(hhmm) {
    var teile = hhmm.split(":");
    return parseInt(teile[0], 10) * 60 + parseInt(teile[1], 10);
  }

  function berlinZeit() {
    var teile = new Intl.DateTimeFormat("en-US", {
      timeZone: "Europe/Berlin",
      weekday: "short",
      hour: "2-digit",
      minute: "2-digit",
      hourCycle: "h23"
    }).formatToParts(new Date());
    var werte = {};
    for (var i = 0; i < teile.length; i++) {
      werte[teile[i].type] = teile[i].value;
    }
    var WOCHENTAGE = { Sun: 0, Mon: 1, Tue: 2, Wed: 3, Thu: 4, Fri: 5, Sat: 6 };
    return {
      tag: WOCHENTAGE[werte.weekday],
      minuten: (parseInt(werte.hour, 10) % 24) * 60 + parseInt(werte.minute, 10)
    };
  }

  function ermitteln() {
    var jetzt = berlinZeit();
    var tag = jetzt.tag;
    var jetztMin = jetzt.minuten;
    var heute = ZEITEN[tag] || [];

    for (var i = 0; i < heute.length; i++) {
      var von = minuten(heute[i][0]);
      var bis = minuten(heute[i][1]);
      if (jetztMin >= von && jetztMin < bis) {
        return { offen: true, text: "Jetzt geöffnet, bis " + heute[i][1] + " Uhr" };
      }
      if (jetztMin < von) {
        return { offen: false, text: "Geschlossen, wieder geöffnet heute ab " + heute[i][0] + " Uhr" };
      }
    }

    for (var n = 1; n <= 7; n++) {
      var naechster = (tag + n) % 7;
      var zeiten = ZEITEN[naechster] || [];
      if (zeiten.length) {
        var wann = (n === 1) ? "morgen" : "am " + TAGE[naechster];
        return { offen: false, text: "Geschlossen, wieder geöffnet " + wann + " ab " + zeiten[0][0] + " Uhr" };
      }
    }

    return { offen: false, text: "Zurzeit geschlossen" };
  }

  function anzeigen() {
    var feld = document.getElementById("oeffnungsstatus");
    if (!feld) return;
    var stand = ermitteln();
    feld.textContent = stand.text;
    feld.className = stand.offen ? "oz-offen" : "oz-zu";
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", anzeigen);
  } else {
    anzeigen();
  }

  setInterval(anzeigen, 60000);
})();
</script>
Feiertage und Betriebsferien

Dieser Code kennt nur die sieben Wochentage. Feiertage und Betriebsferien sind darin nicht vorgesehen, am 25. Dezember steht also weiter „Jetzt geöffnet“.

Dafür braucht er eine zusätzliche Liste mit einzelnen Daten, die ich beim Einbau ergänze.

Zwei Kleinigkeiten noch. Der Code setzt zwar die Klassen oz-offen und oz-zu, gestaltet sie aber nicht. Ohne eigene CSS-Regeln sieht der Hinweis deshalb aus wie ganz normaler Text.

Und er arbeitet mit einer festen id: Bauen Sie den Hinweis zweimal auf dieselbe Seite, funktioniert nur der erste.

Einbauen lassen

Den Hinweis einbauen lassen

Schicken Sie mir Ihre Öffnungszeiten, die Tage, an denen Sie geschlossen haben, und den Link zu Ihrer Seite.

Sie bekommen vorher einen festen Preis, und meist ist der Hinweis noch am selben Tag online.

Lieber per E-Mail? info@kuenzl.dev

Was sich sonst noch an einer Jimdo-Seite ergänzen lässt, finden Sie in der Jimdo-Hilfe.

Falls Sie ohnehin über einen Wechsel nachdenken: Auch in WordPress lässt sich so ein Öffnungszeiten-Hinweis einbauen, mehr zum Umzug zu WordPress.