> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# DC- (Datum und Zeit)

> Serverzeit im Template ausgeben, Bereiche nach Datum, Uhrzeit oder Wochentag schalten und Laufzeiten messen.

Ein Template kann auf die Uhr sehen. Damit lassen sich Hinweise zeitgesteuert einblenden, ohne dass jemand sie von Hand wieder entfernen muss: ein Adventskalender im Dezember, ein Hinweis auf den Versandschluss bis 15 Uhr, ein anderer Text am Wochenende.

Alle Zeit-Tags arbeiten mit der **Serverzeit**, nicht mit der Uhr des Besuchers.

## Erst setzen, dann ausgeben

Die Zeitangaben stammen aus einem Zeitpunkt, den Sie zu Beginn festlegen. `DC-DateTime_set()` tut das.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_set~

Heute ist der ~DC-DateTime_day(true)~.~DC-DateTime_month(true)~.~DC-DateTime_year~,
es ist ~DC-DateTime_hours(true)~:~DC-DateTime_minutes(true)~ Uhr.

<!-- am 06.02.2018 um 11:21 Uhr: Heute ist der 06.02.2018, es ist 11:21 Uhr. -->
```

> [!WARNING]
>
> Setzen Sie den Zeitpunkt, bevor Sie einen seiner Bestandteile ausgeben oder abfragen. Alle folgenden Tags beziehen sich auf diesen einen Zeitpunkt und nicht auf den Moment, in dem sie selbst geparst werden.

### Einen anderen Zeitpunkt setzen

`DC-DateTime_set()` nimmt eine Verschiebung in Sekunden entgegen. Damit rechnen Sie in eine andere Zeitzone oder in die Zukunft.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_set(3600)~     <!-- Serverzeit plus eine Stunde -->
~DC-DateTime_set(-86400)~   <!-- Serverzeit minus einen Tag -->
```

`DC-DateTime_setunixtimestamp()` setzt stattdessen einen absoluten Zeitpunkt. Das Argument ist Tag-in-Tag-fähig, der Zeitpunkt kann also aus einem anderen Tag kommen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_setunixtimestamp($WS-SubSequentOrder_TimestampExpire$)~

Ihre Bestellung gilt bis ~DC-DateTime_day(true)~.~DC-DateTime_month(true)~.~DC-DateTime_year~
um ~DC-DateTime_hours(true)~:~DC-DateTime_minutes(true)~ Uhr.
```

Ist das Argument leer oder keine Zahl, setzt der Shop den Zeitpunkt auf jetzt. Ein fehlerhafter Wert führt also nicht zu einem falschen Datum aus dem Jahr 1970, sondern zur aktuellen Serverzeit.

`DC-DateTime_unixtimestamp` gibt den gerade gesetzten Zeitpunkt wieder als UNIX-Zeitstempel aus. Nützlich, um ihn an ein Fremdsystem oder in ein JavaScript zu übergeben.

## Die Bestandteile ausgeben

| Tag | Liefert | Wertebereich |
| - | - | - |
| `DC-DateTime_day()` | den Tag des Monats | 1 bis 31 |
| `DC-DateTime_month()` | den Monat | 1 bis 12 |
| `DC-DateTime_year()` | das Jahr, vierstellig | |
| `DC-DateTime_hours()` | die Stunde | 0 bis 23 |
| `DC-DateTime_minutes()` | die Minute | 0 bis 59 |
| `DC-DateTime_seconds()` | die Sekunde | 0 bis 59 |
| `DC-DateTime_dayofweek()` | den Wochentag als englische Kurzform | `mon` bis `sun` |
| `DC-DateTime_unixtimestamp` | den Zeitpunkt als UNIX-Zeitstempel | |

### Führende Nullen

Die Zahlen kommen standardmäßig ohne führende Null. Das Argument `true` schaltet sie ein.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_day~          <!-- 7 -->
~DC-DateTime_day(false)~   <!-- 7 -->
~DC-DateTime_day(true)~    <!-- 07 -->
```

`DC-DateTime_year()` kennt diese Unterscheidung nicht und gibt immer vier Stellen aus. Ein Argument bleibt dort wirkungslos.

## Bereiche nach der Zeit schalten

Alle Bestandteile lassen sich klammern. Der Bereich erscheint, wenn der Wert mit dem Argument übereinstimmt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_set~

{DC-DateTime_month(12)}
   <p>Unsere Weihnachtsaktion läuft.</p>
{/DC-DateTime_month(12)}

{DC-DateTime_hours(6)}
   <p>Guten Morgen!</p>
{/DC-DateTime_hours(6)}

{!DC-DateTime_month(12)}
   <p>Text außerhalb des Dezembers.</p>
{/!DC-DateTime_month(12)}
```

> [!WARNING]
>
> Verglichen wird genau ein Wert, keine Spanne. Für "von 9 bis 17 Uhr" brauchen Sie deshalb die Vergleichs-Tags, beispielsweise `DC-CompareDigitIB()`, und übergeben ihnen die Stunde als Tag-in-Tag.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{DC-CompareDigitIB($DC-DateTime_hours$,9,17)}
   <p>Unser Service ist gerade erreichbar.</p>
{/DC-CompareDigitIB($DC-DateTime_hours$,9,17)}
```

Referenz: [DC-CompareDigitIB()](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md#die-tags-im-uberblick)

### Der Wochentag

`DC-DateTime_dayofweek()` nimmt als Bereichs-Tag eine kommagetrennte Liste von Wochentagen entgegen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-DateTime_dayofweek~   <!-- mon, tue, wed, thu, fri, sat oder sun -->

{DC-DateTime_dayofweek(mon,tue,wed,thu,fri)}
   <p>Bestellungen bis 15 Uhr gehen heute noch raus.</p>
{/DC-DateTime_dayofweek(mon,tue,wed,thu,fri)}

{DC-DateTime_dayofweek(sat,sun)}
   <p>Am Wochenende versenden wir nicht.</p>
{/DC-DateTime_dayofweek(sat,sun)}
```

Verglichen werden nur die ersten drei Zeichen, und Groß- und Kleinschreibung spielt keine Rolle. `{DC-DateTime_dayofweek(Monday)}` greift deshalb genauso wie `{DC-DateTime_dayofweek(mon)}`. Bleiben Sie trotzdem bei der Kurzform, damit im Template erkennbar ist, was das Tag tatsächlich vergleicht.

## Laufzeiten messen

`DC-Timer1…3` misst, wie lange der Shop für einen Abschnitt des Templates braucht. Drei unabhängige Timer stehen zur Verfügung.

| Tag | Wirkung |
| - | - |
| `DC-Timer1…3_start` | startet die Messung |
| `DC-Timer1…3_stop` | beendet sie |
| `DC-Timer1…3` | gibt die gemessene Dauer in Millisekunden aus |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~DC-Timer1_start~
<!doctype html>
<html>
   ~DC-Timer2_start~
   <head>
      ...
   </head>
   ~DC-Timer2_stop~

   <body>
      ...
   </body>
</html>
~DC-Timer1_stop~

<!-- Gesamt: ~DC-Timer1~ ms, davon Kopfbereich: ~DC-Timer2~ ms -->
```

Ein sinnvolles Muster: Timer 1 umschließt das ganze Template und liefert die Gesamtdauer, die beiden anderen grenzen die verdächtigen Abschnitte ein.

> [!WARNING]
>
> Die Timer funktionieren nur auf Templates, die sich im Browser selbst aufrufen lassen. In Include-Dateien, beispielsweise FastInclude-Dateien, messen sie nicht.
>
> Lassen Sie die Messwerte nicht im Shop stehen. Sie gehören in einen HTML-Kommentar oder in ein Template, das nur intern aufgerufen wird.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `DC-DateTime_set()` | ja | – | – | – |
| `DC-DateTime_setunixtimestamp()` | ja | – | – | – |
| `DC-DateTime_unixtimestamp` | ja | – | – | – |
| `DC-DateTime_day()` | ja | ja | ja | – |
| `DC-DateTime_month()` | ja | ja | ja | – |
| `DC-DateTime_year()` | ja | ja | ja | – |
| `DC-DateTime_hours()` | ja | ja | ja | – |
| `DC-DateTime_minutes()` | ja | ja | ja | – |
| `DC-DateTime_seconds()` | ja | ja | ja | – |
| `DC-DateTime_dayofweek()` | ja | ja | ja | – |
| `DC-Timer1…3` | ja | – | – | – |
| `DC-Timer1…3_start` | ja | – | – | – |
| `DC-Timer1…3_stop` | ja | – | – | – |

Zulässig sind alle Tags auf allen Templates, die Timer ausgenommen, die in Include-Dateien nicht messen.

## Verwandte Themen

* Referenz: [DC- (Vergleiche und weitere Tags)](https://dokumentation.websale.de/v8s/referenz/tags/dc/vergleiche.md)
* Referenz: [DC- (Freie Parameter und Session-Parameter)](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md)
* Grundlagen: [Grundlagen zu Tags](https://dokumentation.websale.de/v8s/grundlagen-zu-tags.md)


## Related topics

- [Adventskalender](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-adventskalender.md)
- [Blitzversand](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-blitzversand.md)
- [AL- (AutoLogin)](https://dokumentation.websale.de/v8s/referenz/tags/al-autologin.md)
- [Datum und Uhrzeit der letzten Aktualisierung anzeigen](https://dokumentation.websale.de/v8s/einstellungen/datum-und-uhrzeit-der-letzten-aktualisierung-anzeigen.md)
- [SUBS- (Abos verwalten)](https://dokumentation.websale.de/v8s/referenz/tags/subs/abos-verwalten.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.