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

JavaScript Discussion :

Enregistrement date en fonction du navigateur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Enregistrement date en fonction du navigateur
    Bonjour à tous,

    J'ai un souci avec un champ date.
    J'ai choisi un champ input de type date.
    Sous chrome, il m'affiche bien le petit calendrier, c'est top.
    Sous firefox, il n'affiche rien, c'est à l'utilisateur de saisir la date.
    Vu que c'est en français, je l'oblige à saisir sous la forme jj/mm/aaaa.

    Le problème, c'est que sous Chrome, il oblige l'utilisateur à cocher dans le calendrier ou à saisir la date sous forme jj/mm/aaaa, mais il enregistre la variable sous la forme aaaa-mm-jj.

    Du coup, lorsque je valide mon formulaire et je récupère la date en php, je me retrouve avec 2 cas possibles.

    En écrivant je me rends compte qu'il suffit de tester si la date est au format jj/mm/aaaa ou aaaa-mm-jj.
    Mais n'y a-t-il pas un autre moyen de faire ?
    Parce que du coup, une fois sur 2 la date est mal enregistrée...

  2. #2
    Membre confirmé Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Points : 509
    Points
    509
    Par défaut
    Bonjour, alors soit tu peux passer par autre chose qu'un champ date (un champ text ou un div en contenteditable=true) pour éviter les aléas relatifs aux normes mais ça implique de programmer un calendrier toi-même, soit tu convertis les valeurs en passant par les expressions régulières.

    Exemple:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function reFormatDate(val) {
           return  (/([0-9]{4})-([0-9]{2})-([0-9]{2})/).test(val)?(function() { var ex=/([0-9]{4})-([0-9]{2})-([0-9]{2})/.exec(val); return ex[3]+"/"+ex[2]+"/"+ex[1]; })():(/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/).test(val)?val:false);
    }
    Sinon je me demande si il n'y aurait pas moyen d'inviter le navigateur à utiliser le bon format pour le champ date en lui spécifiant une locale ou une norme.
    0x4F

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Je te déconseille d'utiliser un <input type="text">, il faut toujours passer par le standard s'il existe. Je parle du cas du datepicker dans cet article: http://sylvainpv.developpez.com/publ...s-debat/#LII-C

    Tu peux te servir d'un polyfill pour amener le support de <input type="date"> sur les navigateurs non supportés. En voici un assez connu :
    http://www.useragentman.com/blog/201...tml5widgets-2/
    https://github.com/zoltan-dulac/html5Forms.js

    Il gère la langue et convertit automatiquement le format de date de la langue donné en celui standard aaaa-mm-jj, tout comme le fait <input type="date">
    One Web to rule them all

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/12/2014, 04h59
  2. [AC-2010] Calculer enregistrement d'une date en fonction de dates
    Par lelockjohn dans le forum Access
    Réponses: 8
    Dernier message: 19/11/2014, 11h57
  3. [MySQL] Afficher enregistrement dynamiquement en fonction de la date du jour
    Par Cedrinho dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/08/2010, 06h56
  4. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  5. Obtenir des dates en fonction du n° de la semaine
    Par coeur74 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/02/2005, 13h42

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