Donnez vie à vos documents numériques !
 

Problème de date

abracadabraPDF Forums PDF – Général Problème de date

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46451
    xarko
    Membre

    Bonjour à tous,encore une fois je me tourne vers vous pour essayer de résoudre un problème.

    Je dispose d’un formulaire dans lequel il y a une zone pour le choix d’une date (champ DateSie en format date du type dd/mm/yyyy).
    Ce que je veux c’est récupérer chacun des 3 critères entrés : le jour, le mois et l’année.
    Donc j’ai mon bout de script (pardon pour les puristes) :

    Code:
    date1=new Date(this.getField(“DateSie”).value);
    // ici est affecté à date1 la date entrée dans le champ DateSie
    jour=date1.getDate();
    mois=date1.getMonth();

    Alors le problème est que quelque soit le format de date réglé dans les propriétés du champ DateSie, date1 sera toujours interprété en format américain (je crois) : yyyymmdd.
    Dans mon exemple si l’utilisateur entre dans DateSie la date 06/12/2020 (car j’ai mis un format DateSie du genre dd/mm/yyyy pour dire 6 décembre 2020, à la française quoi…), en sortie j’aurais jour=12 et mois=6 car lui croit que l’utilisateur a rentré 12 juin 2020.

    Peut-être que dans bout de script je dois formater ma variable date1 en quelque chose pour lui faire comprendre que la date est entrée à la “française” et non pas à “l’américaine” ?
    Pardon pour les imprécisions, j’ai fait de mon mieux !
    Je vous remercie par avance.
    Stéphane

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

    Bonjour

    date1 sera toujours interprété en format américain (je crois) : yyyymmdd

    Ça c’est le format ISO (international), les anglo-saxons utilisent : mm/dd/yyyy

    Sinon, j’ai compris la question mais il est très difficile d’y répondre efficacement sans voir les champs et tous les scripts.
    Peux tu partager ton document, ou un exemple ?

    #68302
    xarko
    Membre

    Bonjour Merlin et encore une fois merci pour ta réponse.

    Je te joins un fichier avec 3 zones : la zone de saisie de la date à gauche formatée en dd/mm/yyyy (et je veux qu’elle reste comme ça).
    Sur la droite 2 autres zones : celle du haut devrait récupérer le jour (la fomule getDate est utilisée) et celle du bas le mois (formule GetMonth).
    Quoique je fasse dans la zone GetDate je récupère le mois et dans la zone GetMonth je récupère le jour.
    Sauf si je change le format de ma date de saisie et que je le passe en format américain (ce que je ne veux pas) il y aura ce problème.
    Je te remercie.
    Stéphane

    #68303
    bebarth
    Maître des clés

    bonjour,
    Ici, il faut convertir le résultat de ton champ en chaine de caractères, puis il y a 2 solutions.
    Comme tu as un format de date avec dd et mm, on sait que les jours et mois sont toujours indiqués avec 2 caractères. Il suffit donc de prendre les caractères 0 et 1 pour le jour et 3 et 4 pour le mois.
    Si tu avais un format de date avec d ou m, les jours et mois pourraient avoir 1 ou 2 caractères, il faudrait mieux convertir la chaine de caractères en table en coupant à chaque barre oblique. L’élément 0 de la table serait donc le jour, l’élément 1 le mois (et l’élément 2 l’année).
    Voici un fichier en pièce jointe avec les 2 possibilités en script de champ désactivé.
    @+
    :bonjour:

    #68304
    Merlin
    Maître des clés

    J’ai passé du temps à essayer de comprendre, parce-que normalement, d’après la doc* getMonth (et getDay aussi) utilise le format de date local (celui de l’ordinateur), et on dirait bien que dans ce cas il n’utilise que le format anglo-saxon.
    Soit j’ai raté un truc, soit Acrobat l’ignore.  :doute:

    * Je cite : The getMonth() method returns the month (from 0 to 11) for the specified date, according to local time.

    #68305
    xarko
    Membre

    Bonjour Bebarth,je te remercie également pour ta réponse. c’est impeccable.
    J’avais pensé à essayer “d’aplatir” la date en une chaîne de caractères pour pouvoir extraire ce que je voulais. Mais je suis totalement novice, j’avais donc laissé tomber.Un grand merci, je peux avancer.Bonne journée.

    #68306
    xarko
    Membre

    Je vais utiliser la solution de Bebarth. Effectivement j’ai beau retourner le truc dans les sens, il reste bloqué sur ce format.en tout cas, je te remercie pour tes recherches.Bonne journée.

    J’ai passé du temps à essayer de comprendre, parce-que normalement, d’après la doc* getMonth (et getDay aussi) utilise le format de date local (celui de l’ordinateur), et on dirait bien que dans ce cas il n’utilise que le format anglo-saxon.
    Soit j’ai raté un truc, soit Acrobat l’ignore.  :doute:

    * Je cite : The getMonth() method returns the month (from 0 to 11) for the specified date, according to local time.

    #68307
    bebarth
    Maître des clés

    Si tu veux absolument utiliser les méthodes “getMonth”, etc., il faut alors utiliser également la méthode “util.scand” pour indiquer le format de date du champ d’origine.
    Ci-joint un nouveau fichier avec les 3 méthodes.
    @+
    :bonjour:

    #68308
    Merlin
    Maître des clés

    Si tu veux absolument utiliser les méthodes “getMonth”, etc., il faut alors utiliser également la méthode “util.scand” pour indiquer le format de date du champ d’origine.

    C’est ça que je cherchais, je me disais bien que j’avais raté quelque chose.
    :oh:  :mur:

    #68309
    xarko
    Membre

    Bonjour Bebarth, effectivement je préfère même si tes solutions précédentes me convenaient parfaitement.Je garde précieusement le fichier que tu as envoyé.Encore merci!Bonne journée.

    Si tu veux absolument utiliser les méthodes “getMonth”, etc., il faut alors utiliser également la méthode “util.scand” pour indiquer le format de date du champ d’origine.
    Ci-joint un nouveau fichier avec les 3 méthodes.
    @+
    :bonjour:

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