イオン2/3アプリion-datetimeとdatepickerコンポーネントを使用します。 それはほとんどうまく動作します。Ionic 2/3 - ion-datetime - maxを設定すると、デフォルトの年がmaxに変更されます。
私は2つの日付を持っています - 開始と終了は、私のコントローラのプロパティにバインドされています。私のコントローラでは、両方の日付の最小値と最大値も設定しました。
問題があります - 任意の日付のmax属性を設定すると、datepickerのデフォルトの日付がその年に設定されます(たとえば、maxを2020に設定すると、datepickerのデフォルトの日付は2020年1月1日になります)。 今日のデフォルトの日付を強制的に表示するにはどうすればいいですか?)。それはデフォルトとして常に最大年の1月1日を使用します。
スクリーンショットの例:私は最大の日付を2018年8月25日に設定しました。 datepickerを開くと、デフォルトの日付は2018年1月1日になります。 最大日付を変更すると、2020年1月25日になります。 これは予期しない動作です。
マイテンプレート:
<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>
マイコントローラ:
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');
}
}
}
}
あなたはドキュメントをよく読んでいますか? https://ionicframework.com/docs/api/components/datetime/DateTime/ – Microsmsm
私はそう思いました:)解決策を見つけることができません – dease
あなたはデータフォーマットを変更しようとしましたか? – Microsmsm