dans l'application Ionic 2/3 Je souhaite utiliser ion-datetime et son composant datepicker. Il fonctionne presque bien.Ionic 2/3 - ion-datetime - setting max change une année par défaut à son maximum
J'ai deux dates - début et fin, qui sont liées à mes propriétés de contrôleur. Dans mon contrôleur, j'ai également mis les valeurs min et max pour les deux dates. Problème: lorsque je définis un attribut max pour l'une des dates, la date par défaut dans datepicker est définie sur son année (par exemple, si je définis max à 2020, la date par défaut dans datepicker sera le 1er janvier 2020). Comment puis-je le forcer à afficher la date par défaut comme aujourd'hui?). Il utilise toujours le premier janvier de l'année max par défaut.
Exemple de capture d'écran: J'ai défini ma date maximale au 25/08/2018. Lorsque j'ouvre datepicker, la date par défaut est le 1er janvier 2018. Lorsque je change ma date max 25/08/2020, sera également le 1er janvier 2020. Ce comportement n'est pas attendu.
Mon modèle:
<ion-item>
<ion-label stacked>Start:</ion-label>
<ion-datetime [max]="startMax" [min]="startMin"
displayFormat="DD/MM/YYYY" [(ngModel)]="start"
(ionChange)="startDateChanged($event)"></ion-datetime>
</ion-item>
<ion-item>
<ion-label stacked>End:</ion-label>
<ion-datetime [min]="endMin" [max]="endMax"
displayFormat="DD/MM/YYYY"
[(ngModel)]="end"
(ionChange)="endDateChanged($event)"></ion-datetime>
</ion-item>
Mon contrôleur:
export class NewRequestStep2 {
start: any;
end: any;
startMin: any;
startMax: any;
endMin: any;
endMax: any;
constructor(public navCtrl: NavController, public navParams: NavParams) {
this.startMin = moment().format();
this.startMax = moment().add(1, 'year').format();
this.endMin = this.startMin;
this.endMax = this.startMax;
}
startDateChanged(event) {
console.log(event);
console.log(this.start);
console.log(this.end);
if (this.end) {
if (moment(this.start) > moment(this.end)) {
this.end = null;
console.log('Invalid end');
}
}
}
endDateChanged(event) {
console.log(event);
console.log(this.start);
console.log(this.end);
if (this.start) {
if (moment(this.start) > moment(this.end)) {
this.start = null;
console.log('Invalid start');
}
}
}
}
avez-vous bien lu les documents? https://ionicframework.com/docs/api/components/datetime/DateTime/ – Microsmsm
Je le pensais :) Je ne peux pas trouver la solution – dease
avez-vous essayé de changer le format de données que le moment revient? – Microsmsm