web-dev-qa-db-ja.com

ion-datetime:タイムスタンプなしで日付値を取得する方法は?

プロパティにバインドするために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」が引き続き表示されます。

6
RealBadCoder

日付だけが必要な場合は、split()メソッドが機能すると思うので、ion-datetimeから取得する値は文字列であるため、文字列を分割して配列に変換するsplitメソッドを使用して、日付または時刻を取得できます次のようにインデックスを使用して必要なもの:

     var dateFormat = mydate.split('T')[0]; 
     console.log(dateFormat);
     // 2019-04-22
2
Reaper

日付は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
}
1
Remi Sture

カスタムピッカーオプションを使用してカスタムボタンを設定できます。これにより、すべての変数を持つオブジェクトが個別のキーに返されるため、表示方法を簡単に編集できます。

これを行うには、これをion-datetimeに挿入します

[pickerOptions]="customPickerOptions"

そしてあなたの.tsファイル

this.customPickerOptions = {
            buttons: [
                {
                    text: 'Save',
                    handler: (time) => {
                        console.log('time', time);
                    }
                },
                {
                    text: 'Cancel',
                    handler: e => {
                        modalCtrl.dismiss(e)
                    }
                }
            ]
        }

お役に立てれば

0
Eliran Assaraf