Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: Zeitunterschied zu UTC angeben

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard Zeitunterschied zu UTC angeben

    Hallo zusammen,

    im folgenden ein Auszug aus dem Template.
    Darin Zeitunterschied zu UTC
    PHP-Code:
    ("H:i:00+02:00"$this->end
    Im Sommer > +2
    Im Winter > +1

    PHP-Code:
    <meta itemprop="endDate" content="<?php echo date("Y-m-d"$this->begin);  ?>T<?php echo date("H:i:00+02:00"$this->end);  ?>">
    Der Zeitunterschied müsste aktuell händisch bei jeder Zeitumstellung umgestellt werden.
    Man könnte das über eine php Abfrage in einer Variable übergeben würde das aber lieber mit Contao Boardmitteln lösen (Zeitzone ist ja in den Einstellungen hinterlegt).

    Kann hier jemand weiterhelfen bzgl. einer "eleganten" Lösung?

    Besten Dank!
    Geändert von marcohe (22.10.2022 um 10:57 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    So wie es aussieht willst du einfach nur das ISO 8601 date ausgeben? Das wäre einfach
    PHP-Code:
    <?= date('c'?>
    Siehe https://www.php.net/manual/en/datetime.format.php
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    So wie es aussieht willst du einfach nur das ISO 8601 date ausgeben? Das wäre einfach
    PHP-Code:
    <?= date('c'?>
    Siehe https://www.php.net/manual/en/datetime.format.php
    Das wäre zu einfach.
    Ich muss Datum und Uhrzeit trennen.
    Sonst bekomme ich mit
    PHP-Code:
    <?= date('c'?>
    bei nicht gesetzter Uhrzeit
    HTML-Code:
    2022-10-14T00:00:00+02:00
    Ohne Zeitangabe soll aber nur der Tag ausgegeben werden.
    HTML-Code:
    2022-10-14
    Siehe Auszug aktueller Stand:

    PHP-Code:
    <?php elseif($this->eventStatus == "3"): ?>
      <meta itemprop="eventStatus" content="https://schema.org/EventRescheduled">
        <?php if ($this->endDate): ?>
            <meta itemprop="startDate" content="<?php echo date("Y-m-d"$this->begin);  ?><?php if ($this->addTime!=""): ?>T<?php echo date("H:i:00+02:00"$this->begin);  ?><?php endif ;?>">
            <meta itemprop="endDate" content="<?php echo date("Y-m-d"$this->endDate);  ?><?php if ($this->addTime!="" AND $this->endTime): ?>T<?php echo date("H:i:00+02:00"$this->end);  ?><?php endif ;?>">
        <?php else: ?>
            <meta itemprop="startDate" content="<?php echo date("Y-m-d"$this->begin);  ?><?php if ($this->addTime!=""): ?>T<?php echo date("H:i:00+02:00"$this->begin);  ?><?php endif ;?>">
            <?php if ($this->addTime!="" AND $this->endTime): ?>
                <meta itemprop="endDate" content="<?php echo date("Y-m-d"$this->begin);  ?>T<?php echo date("H:i:00+02:00"$this->end);  ?>">
            <?php endif ;?>
        <?php endif ;?>
      <meta itemprop="previousStartDate" content="<?php echo date("Y-m-d"$this->previousStartDate);  ?>">
    Geändert von marcohe (22.10.2022 um 12:30 Uhr)

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Dann kannst du ja einmal Y-m-d und einmal c ausgeben lassen.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dann kannst du ja einmal Y-m-d und einmal c ausgeben lassen.
    Dann müsste ich halt, wenn Startdatum = Enddatum, immer das Enddatum mit eintragen.
    Das könnte ich mir so sparen
    PHP-Code:
    <meta itemprop="endDate" content="<?php echo date("Y-m-d"$this->begin);  ?>T<?php echo date("H:i:00+02:00"$this->end);  ?>">
    Denke
    PHP-Code:
    <?= date('c'?>
    ist trotzdem die beste Lösung in Kombination mit einer DCA-Änderung endDate als mandatory.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Verstehe nicht was du meinst. Du prüfst ja jetzt eh schon alles in deinem Template? Dann brauchst du ja für den einen Fall nur Y-m-d ausgeben und für den anderen Fall nur c.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Verstehe nicht was du meinst. Du prüfst ja jetzt eh schon alles in deinem Template? Dann brauchst du ja für den einen Fall nur Y-m-d ausgeben und für den anderen Fall nur c.
    Du hast recht das geht.
    PHP-Code:
    <?= date('c'$this->end); ?>
    Gibt mir wenn nur Startzeit / Endzeit / Startdatum angegeben Startdatum und Endzeit aus.
    Ich baue das um. Danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •