Hier mal ein Template, welcher die verbleibende Tage des Monats errechnet.
Auch wenn ihr das Template in dieser Form gar nicht gebrauchen könnt, soll euch der Aufbau und die kurzen Erläuterungen das Templating ein wenig näher bringen.
Ansonsten lässt sich daraus ein schöner Countdown basteln.
Hochrechnung von irgendwelchen monatlichen Verbräuchen, oder was auch immer
Code: Alles auswählen
{% set this = now().replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0) %}
{% set next = this.month + 1 if this.month + 1 <= 12 else 1 %}
{% set last = this.replace(year=this.year + 1, month=1, day=1) if now().month == 12 else this.replace(month=next, day=1) %}
{{ (last.date() - this.date()).days }}
Die erste Zeile erzeugt die Variable this -> Das heutige Datum
Code: Alles auswählen
{% set this = now().replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0) %}
Dieser Variable wird der Zeitstempel "jetzt" zugewiesen, wobei die Stunden, Minuten, Sekunden und Millisekunden auf 0 gesetzt werden.
Die zweite Zeile definiert die Variable next -> Der Folgemonat
Code: Alles auswählen
{% set next = this.month + 1 if this.month + 1 <= 12 else 1 %}
Dabei muss sichergestellt werden, das nach Monat 12 der Monat 1 und nicht Monat 13 folgt.
Die dritte Zeile definiert die Variable last -> Den ersten des Folgemonats
Code: Alles auswählen
{% set last = this.replace(year=this.year + 1, month=1, day=1) if now().month == 12 else this.replace(month=next, day=1) %}
Dabei muss sichergestellt werden, wenn es sich heute um den Monat 12 handelt, dass der Jahreswechsel berücksichtigt wird.
Die letzte Zeile berechnet die Tage zwischen den ersten des Folgemonats (last) und heute (this )
Code: Alles auswählen
{{ (last.date() - this.date()).days }}
Wenn der heutige Tag nicht mitgezählt werden soll, kann man im Ergebnis einfach einen Tag abziehen.
Code: Alles auswählen
{{ (last.date() - this.date()).days - 1 }}
Gruß
Osorkon