IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Angular material datepiker


Sujet :

Angular

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Angular material datepiker
    Bonjour,

    J'ai dans mon application un calendrier. Le problème que mon calendrier est en anglais et que le format de l'heure est incorrect.
    Cela me met 22/06/2019 00:00 +2:00 GMT
    Et du coup cela m'envoie la date de la veille au backend.

    Comment faire pour avoir à la fois mon calendrier en français et avoir le bon format horaire pour que cela m'envoie par exemple au backend 22/06/2019 00:00

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    bonjour,

    essaye avec le pipe timezone ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

    https://angular.io/api/common/DatePipe

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Je souhaite avoir quelque chose qui marche sur les dates que j'envoie à mon backend et sur celles que je reçois du backend

  4. #4
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par totot Voir le message
    J'ai dans mon application un calendrier. Le problème que mon calendrier est en anglais et que le format de l'heure est incorrect.
    Cela me met 22/06/2019 00:00 +2:00 GMT
    Et du coup cela m'envoie la date de la veille au backend.

    Comment faire pour avoir à la fois mon calendrier en français et avoir le bon format horaire pour que cela m'envoie par exemple au backend 22/06/2019 00:00
    C'est plutôt côté backend que tu ne convertis pas correctement la date.

    22/06/2019 00:00 +2:00 GMT ça veut dire qu'il est minuit en France. GMT+2 c'est le fuseau horaire de la France.

    Si côté back tu interprètes 22/06/2019 00:00 sans notion de fuseau horaire tu es sur 22/06/2019 00:00 GMT donc la timezone de Londres. Ce qui équivaut pour Paris à 21/06/2019 22:00 +2:00 GMT.

    Si tu veux signifier minuit en France le 22 juin 2019, la représentation correcte est bien 22/06/2019 00:00 +2:00 GMT. Si ton backend prend en entrée un datetime sans préciser la TZ ça veut dire qu'il attend une TZ GMT donc Londres et pas Paris. Donc si il traite des datetime français il doit set le bon fuseau horaire.

    La bonne pratique reste que le backend prenne en entrée du RFC2822 avec la TZ pour éviter les confusions. Donc tu dois lui envoyer une string avec la TZ. Aucune confusion possible.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Et comment faire si je veux lui envoyer un datetime au backend et du backend envoyer un datetime au front

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Quand je fait un new date dans mon backend et que je la save en base elle est bien au bon format et c'est bien l'heure courante. Mais par contre quand elle remonte au front sa lui ajoute 2h

  7. #7
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Au bon format sur quelle TZ ?

    Le format datetime AAAAMMJJ:hhmmss ne veut rien dire du tout si tu ne précise pas la TZ. Si tu précises pas la TZ alors t'es en GMT donc heure de Londres.

    A mon avis tu gères mal tes dates côté back, tu enregistres sur la TZ de Londres sans t'en rendre compte.

    Sinon comment la donnée circule-t-elle entre le front et le back ? Via un webservice j'imagine ? Si oui quel est le format de la donnée date ? Contient-elle la TZ ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Quand je fait un new date time sur le backend j'ai bien le bon format avec la bonne heure.
    Ma date est envoyée via un service rest à mon front. Je crois qu'elle contient pas la tz

  9. #9
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par totot Voir le message
    Je crois qu'elle contient pas la tz
    Il est là ton problème. Le front fonctionne normalement, c'est ton back qui déconne il devrait set la TZ et la fournir au front. Les datetime au format RF2822 sont supposés contenir la TZ. S'il n'y est pas alors la valeur doit être interprétée comme si elle était sur la TZ de Londres. Donc ton front enlèves 2h et c'est parfaitement normal.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Non c'est l'inverse
    Date dans mon front 22/06/2019 00:00
    Date reçu par mon back 21/06/2019 22:00

    Dans dans mon back 21/06/2019 22:00
    Dans reçu par mon front 22/06/2019 00:00

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    J'ai vérifié le problème vient bien de mon back mais ou paramétrer cela dans le startup

Discussions similaires

  1. [Angular Material] Drag and Drop
    Par JérémyGa dans le forum Angular
    Réponses: 0
    Dernier message: 03/12/2018, 15h11
  2. Réponses: 0
    Dernier message: 15/11/2018, 09h10
  3. Angular 2 styling (Material design)
    Par hed.java dans le forum Angular
    Réponses: 0
    Dernier message: 27/06/2017, 17h44
  4. Select Multiple angular materialize
    Par Yakasan dans le forum Angular
    Réponses: 0
    Dernier message: 25/04/2017, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo