meta données pour cette page
Cas particulier des dates
HTML
<dx-date-box stylingMode="outlined" labelMode="static" label="Date de naissance" [(value)]="personne.dateNaissance"
[max]="today" displayFormat="dd/MM/yyyy" [useMaskBehavior]="true" [showClearButton]="true" [readOnly]="!this.DG.isDroitsFichierEdition()"
[style.background-color]="BC.mRGPD('personne','dateNaissance').couleur" (onValueChanged)="handlePersonneChanged()">
<dx-validator validationGroup="infoPersonne" name="Date de naissance">
<dxi-validation-rule type="range" [max]="today" [min]="minDateNaissance" message="'La date doit être après ' + (minDateNaissance | date:'yyyy')"/>
</dx-validator>
</dx-date-box>
TS
// Bornes de validation de la date de naissance
public today: Date = new Date();
public minDateNaissance: Date = new Date();
// Message dynamique pour le validateur
public rangeMessage: string = "";
ngOnInit(): void {
this.initValidationDates();
}
/**
* Initialise les bornes de temps pour le dx-date-box
*/
private initValidationDates() {
// 1. On fixe AUJOURD'HUI à la fin de la journée (23:59:59)
// Cela évite que la date du jour soit considérée comme "dans le futur"
this.today = new Date();
this.today.setHours(23, 59, 59, 999);
// 2. On calcule MINIMUM (Aujourd'hui - 120 ans)
this.minDateNaissance = new Date();
this.minDateNaissance.setFullYear(this.today.getFullYear() - 120);
this.minDateNaissance.setHours(0, 0, 0, 0);
// 3. On prépare le message d'erreur
this.rangeMessage = `La date doit être comprise entre ${this.minDateNaissance.getFullYear()} et aujourd'hui.`;
}