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

jQuery Discussion :

DatePicker : afficher dans un format utilisateur et enregistrer dans un autre format


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut DatePicker : afficher dans un format utilisateur et enregistrer dans un autre format
    Bonjour,

    je développe une application DJango en français et en anglais
    j'utilise un datepicker JQuery mais je n'arrive pas à gérer l'affichage au format de chaque langue

    j'ai regardé la doc et vu qu'il existait un altFormat qui semble rendre ce service mais je ne vois aucune différence

    comment puis-je gérer çà ?
    faut-il récupérer la langue utilisateur du navigateur?

    d'avance merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $("#id_ran_dat").datepicker(
    	{
    		dateFormat: 'yy-mm-dd', #to store in database
                    altFormat: 'dd/mm/yy', #to display for french users
    	}
    );

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Avec un split sur le séparateur tu récupère un array et du coup tu en fait ce que tu veux ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    je comprends pas ce que tu veux dire ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    indate="12/07/2019"
    tabdate=indate.split('/')
    outdate=tabdate.reverse.join('-')
    console.log(outdate)
    ou inversement split sur - et join / selon le sens de transformation voulu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    indate="2019-07-12"
    tabdate=indate.split('-')
    outdate=tabdate.reverse.join('/')
    console.log(outdate)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    Merci de votre réponse, mais j'utilise le framework Django... alors je souhaiterais utiliser les options Django pour le faire sans tout recoder

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Ce chat est un chat francophone, merci de vous exprimer en français.

    Il faut également définir le champs concerné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $( ".datepicker" ).datepicker({
            dateFormat: 'D d.m',
            altField: ".date_alternate",
            altFormat: "yy-mm-dd"
    };
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    je suis revenu sur ce problème non bloquant après plusieurs semaines

    en fait, la solution que j'ai adopté est de checker la langue utilisateur en JQuery et d'afficher le format du datepicker selon la langue
    je sais pas si c'est ce qu'il y a de plus propre mais çà fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    $(function(){
    	if(window.navigator.language == 'fr-FR'){
    		$("#id_asp_ent_dat").datepicker(
    			{
    				dateFormat: 'dd/mm/yy',
    			}
                    );
    	} 
    	else
    	{
    		$("#id_asp_ent_dat").datepicker(
    			{
    				dateFormat: 'yy-mm-dd',
    			}
                    );
    	}
     
    });

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut Ne fonctionne plus si j'utilise unique_together
    Bonjour,

    je pensais avoir solutionner mon problème d'affichage de date FR/EN avec le datepicker en utilisant JS pour afficher la date dans le format selon la langue du navigateur

    cela fonctionnait mais j'ai depuis modifié le model 'Entree' en ajoutant une contrainte sur 3 champs dont la date en question

    Lorsque je tente d'enregistrer une saisie 'en français', j'obtiens le message d'erreur ci-dessous :

    Le format de date de la valeur « 23/03/2020 » n'est pas valide. Le format correct est AAAA-MM-JJ
    Je ne sais pas comment gérer cette erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class Entree(models.Model):
     
        asp_ent_cle = models.AutoField(primary_key=True)
        asp_ent_loc = models.CharField("Site concerned by the operation", max_length=10, null=True, blank=True)
        med_num = models.CharField("Trial batch number", max_length=3, null=True, blank=True,)
        asp_ent_dat = models.DateField("Entry date", null=True, blank=True)
        asp_ent_pro_pay = models.CharField("Country of treatment origin in case of entry", max_length=10, null=True, blank=True)
        asp_ent_pro_sit = models.CharField("Processing source site in case of entry", max_length=10, null=True, blank=True)
        opr_nom = models.CharField("Input operator", max_length=10, null=True, blank=True)
        opr_dat = models.DateField("Entry date", null=True, blank=True)
        log = HistoricalRecords()
     
        class Meta:
     
            db_table = 'pha_asp_ent'
            verbose_name_plural = 'Entries'
            ordering = ['asp_ent_cle']
            unique_together = ['asp_ent_loc','med_num','asp_ent_dat']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $(function(){
     
        if(window.navigator.language == 'fr-FR' | window.navigator.language == 'fr'){
            $("#id_asp_ent_dat").datepicker(
                {
                    dateFormat: 'dd/mm/yy',
                }
            );
        } 
        else
        {
            $("#id_asp_ent_dat").datepicker(
                {
                    dateFormat: 'yy-mm-dd',
                }
            );
    });

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/03/2008, 20h30
  2. Réponses: 5
    Dernier message: 04/03/2008, 22h22
  3. afficher dans une autre frame
    Par lrgtk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/02/2008, 09h38
  4. Choix multiple à afficher dans une autre fenêtre
    Par makohsarah dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2007, 11h37
  5. Réponses: 2
    Dernier message: 31/05/2007, 11h01

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