web-dev-qa-db-fra.com

ion-datetime: Comment obtenir une valeur de date sans horodatage?

J'utilise ion-datetime dans ionic4 en utilisant NgModel pour se lier à une propriété, cependant, peu importe les options que j'inclus dans le format, j'ai toujours l'heure avec l'horodatage inclus. ¿Comment puis-je supprimer l'horodatage du résultat pour que la valeur finale de ma propriété soit quelque chose comme "2019-04-22" au lieu de "2019-04-22T08: 45: 41.243-05: 00"?

J'ai essayé: mais je reçois toujours l'horodatage

 <ion-datetime max="2030" min="2019" [(ngModel)]="mydate" display-format="MMM DD, YYYY"></ion-datetime>

Je m'attends à ce que le résultat soit comme: "2019-04-22", mais je reçois toujours: "2019-04-22T08: 45: 41.243-05: 00"

6
RealBadCoder

Si vous ne voulez que la date, je pense que la méthode split () pourrait fonctionner, car la valeur que nous obtenons de ion-datetime est une chaîne.Nous utilisons donc la méthode split qui fractionne la chaîne et la convertit en un tableau, et vous pouvez obtenir chose que vous voulez à l'aide de l'index comme suit:

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

Vous pouvez formater la date avec 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

Vous pouvez utiliser des options de sélecteur personnalisées pour définir des boutons personnalisés, il renvoie un objet avec toutes les variables dans des clés distinctes, ce qui facilite la modification de la façon dont vous souhaitez qu'il s'affiche

Pour ce faire, vous devez insérer ceci dans votre ion-datetime

[pickerOptions]="customPickerOptions"

et dans votre fichier .ts

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

J'espère que cela t'aides

0
Eliran Assaraf