Donnez vie à vos documents numériques !
 

Format heure personnalisée en javascript

abracadabraPDF Forums PDF – Général Format heure personnalisée en javascript

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45981
    mimiz
    Membre

    Bonjour à toute la communauté !

    Je suis nouveau sur ce site que je viens de découvrir, et c’est un pur bonheur !
    je n’aurais jamais penser qu’une caverne d’Ali Baba comme celle-ci pouvait exister !

    Bref je me lance donc dans mon premier sujet avec vous :
    J’aimerais personnaliser un format heure de la sorte HHhMM (Ex: 19h45)
    sauf que je m’y connais pas très bien, je demande donc est ce que c’est possible de le faire:
    -soit par un format heure personnalisé (chose que je ne sais pas faire)
    -soit avec une regex javascript ( chose que je ne sais pas faire non plu  :Smiley03: )
    et aussi comment personnaliser le message d’erreur de sorte à ce que si l’utilisateur tape un autre format le message lui affiche qu’il doit taper l’heure au format HH puis h puis MM.
    Si vous me pouvez me mettre sur quelque pistes j’en serais ravi
    Merci d’avance.

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #65039
    Merlin
    Maître des clés

    Bonjour, bienvenue et merci pour les compliments.

    Concernant les formats de date et d’heure personnalisés, pas souci c’est prévu. Le secret c’est le caractère (antislash) qui permet “d’échapper” le caractère immédiatement suivant, c’est-à-dire que ledit caractère est considéré pour ce qu’il est et non pas comme un métacaractère.
    Un dessin vaut mieux qu’un long discours, sur la capture jointe on voit que le troisième “h”, en minuscule, s’affiche bien comme un “h” et non pas comme le métacaractère “heure sur 12” (vs le métacaractère “H” en capitale qui affiche l’heure sur 24).

    Par-contre, on ne peut pas personnaliser simplement le message d’alerte, le seul moyen c’est de réinventer la roue et de ré-écrire toute la fonction de format d’heure en JavaScript. C’est une autre paire de manches !

    Habituellement on affiche plutôt le masque du format voulu dans le champ, en texte grisé qui disparait dès que l’utilisateur clique dessus, c’est plus simple. Il y a plusieurs façon de faire, les explications sont quelque part dans ce forum.

    :Smiley15:

    #65040
    mimiz
    Membre

    Bonjour,
    c’est exactement ce que j’ai fait, mais ça ne marche pas, dès que je teste mon champ il me convertit le “h” en nombre, par exemple je tape 02h00 et dès que je sors du champ il m’affiche 02200 !
    Je ne sais pas quoi faire !

    #65041
    bebarth
    Maître des clés

    bonjour,
    Pareil, alors que l’exemple donné dans la fenêtre donne le bon format !
    Comme ça je ne vois pas pourquoi, mais je te propose une alternative : Format “Spéciale” avec un masque arbitraire 99h99.
    L’embêtant c’est qu’il faudrait un script pour vérifier que le dernier nombre est inférieur à 60 !
    On va donc attendre de voir si Merlin a une réponse.
    @+
    :bonjour:

    #65042
    Merlin
    Maître des clés

    En effet…  :oh:  :mur:
    Ça sent le bug bien pourri !

    Ou bien j’ai oublié quelque chose, je vais vérifier.

    #65043
    bebarth
    Maître des clés

    …Il faut réfléchir un peu plus quand on n’écrit pas des expressions régulières tous les jours, mais bon !!!
    Voilà ce que j’ai fait :

    Code:
    var str = this.event.target.value;
    var leTest=/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/;
    var res = leTest.test(str);
    try {
        var n = str.indexOf(“:”);
        if (n>-1) {
            var Hr=str.substring(0, n);
            if (Hr.length==1) Hr=”0″+Hr;
            var Mn=str.substring(n+1,str.length);
            if (res) {
                this.getField(“Heure”).value=Hr+”h”+Mn;
            } else {
                this.getField(“Heure”).value=””;
                app.alert({cMsg:”Le format d’heures n’est pas valide.”, nIcon:2});
            }
        }
    } catch(e) {
        this.getField(“Heure”).value=””;
        app.alert({cMsg:”N’oubliez pas les deux points (:) lorsque vous entrez l’heure.nEx : 5:37 ou 21:48.”, nIcon:2});
    }

    Peut être certainement amélioré…
    @+
    :bonjour:

    #65044
    mimiz
    Membre

    Cooooooool !!!!!
    Merci beaucoup à tous !
    Mais c’est vraiment réconfortant d’être sur un forum pareil !!
    Merci encore !
    Bonne journée !

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.