プロパティにバインドするためにNgModelを使用して、ionic4でion-datetimeを使用していますが、フォーマットにどのオプションを含めても、タイムスタンプを含めて常に時刻を取得します。 timestampプロパティから最終的な値が「2019-04-22T08:45:41.243-05:00」ではなく「2019-04-22」のようになるように、結果からタイムスタンプを削除するにはどうすればよいですか?
私が試しました:しかし、私はまだタイムスタンプを取得しています
<ion-datetime max="2030" min="2019" [(ngModel)]="mydate" display-format="MMM DD, YYYY"></ion-datetime>
結果は「2019-04-22」のようになると期待していますが、「2019-04-22T08:45:41.243-05:00」が引き続き表示されます。
日付だけが必要な場合は、split()メソッドが機能すると思うので、ion-datetimeから取得する値は文字列であるため、文字列を分割して配列に変換するsplitメソッドを使用して、日付または時刻を取得できます次のようにインデックスを使用して必要なもの:
var dateFormat = mydate.split('T')[0];
console.log(dateFormat);
// 2019-04-22
日付はMoment.jsでフォーマットできます。
<ion-datetime displayFormat="MMM DD, YYYY" max="2030" min="2019" [(ngModel)]="mydate" (ionChange)="doSomething(this.mydate)"></ion-datetime>
import * as moment from 'moment';
doSomething(date) {
console.log('date', moment(date).format('YYYY-MM-DD')); // 2019-04-22
}
カスタムピッカーオプションを使用してカスタムボタンを設定できます。これにより、すべての変数を持つオブジェクトが個別のキーに返されるため、表示方法を簡単に編集できます。
これを行うには、これをion-datetimeに挿入します
[pickerOptions]="customPickerOptions"
そしてあなたの.tsファイル
this.customPickerOptions = {
buttons: [
{
text: 'Save',
handler: (time) => {
console.log('time', time);
}
},
{
text: 'Cancel',
handler: e => {
modalCtrl.dismiss(e)
}
}
]
}
お役に立てれば