Dato minimum og maximum
Bemærk, at dette kun begrænser de datoer der accepteres af forms. Det har intet med formateringen af dato formater at gøre. For ændring af dato formater se https://os2forms.os2.eu/dato-formater.
Følgende dokumentation omhandler måden hvorpå man kan bruge dato minimum og maximum i følgende elementer
- Dato
- Dato/Tid
- Date list
For at specificere min/max bruges GNU date input formatet (se https://www.gnu.org/software/tar/manual/html_chapter/Date-input-formats.html#index-date-input-formats).
Grundlæggende GNU formater
- +1 day
- -2 week
- +3 month
Vær opmærksom på, at hvis overstående formater bruges regner systemet ud fra dags dato. Det vil sige, at hvis jeg den 20/9/2022 udfylder et dato element der er konfigueret med en minimum dato på +3 months, vil den kun acceptere datoer på eller efter den 20/12/2022.
Ønsker man mere præcise datoer mere præcist, f.eks. den første i næste måned, skal man bruge nogle mere avancerede formater:
Avancerede GNU formater
- first day of this month
- first day of +3 month
- last day of -2 month
- monday +1 week
Eksempel
En valgt dato skal ligge mellem den første næste måned og den sidste dag i måneden der ligger 3 måneder fremme.
Sættes dato min til
- first day of +1 month
og dato max til
- last day of +3 month
Vil jeg fra dagsdato (20/9/2022) kun kunne vælge datoer fra (og med) 1/10/2022 til (og med) den 31/12/2022.
Brug af computed twig til at udregne min, max, default value
Det er ikke alt udregning af datoer der kan lade sig gøre i GNU.
Ønskes en dato baseret på hvor langt inde i den nuværende måned man er, f.eks.
- dagens dato er mellem den 1. og den 15., ønskes den 16. efter 2 måneder,
- ellers, den 1. efter 3 måneder
Computed twig element:
twig_if:
'#type': computed_twig
'#title': 'twig if'
'#access': false
'#template': |-
{% if "today"|date("d") < 16 %}
{% set testdate = "first day of +2 months"|date_modify("+15 day")|date("m/d/Y") %}
{% else %}
{% set testdate = "first day of +3 months"|date("m/d/Y") %}
{% endif %}
{{ testdate }}
Bemærk, at vi her bruger det amerikanske dato format, da det er dette der skal bruges i dato-elementet for at sætte min, max eller default value.
Eksempel dato element:
dato_test2:
'#type': date
'#disabled': true
'#title': 'Dato ud fra twig udregning'
'#default_value': '[webform_submission:values:twig_if]'
'#date_date_format': ''