Donnez vie à vos documents numériques !
 

Date non-valide

abracadabraPDF Forums PDF – Général Date non-valide

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45246
    Rockabilly
    Participant

    J’ai un formulaire qui inscrit automatiquement la date d’hier ou de vendredi si la journée d’hier était un dimanche.
    Cependant, j’ai fais face à un problème lorsqu’est arrivé le 1er septembre, alors que la date d’hier est devenue 09/31/2015. Il est évident que ça aurait dû être 08/31/2015, pourtant je n’ai pas eu d’alerte disant que la date n’est pas valide. Alors comment dois-je faire pour ajuster la date (et le mois) d’hier lorsqu’arrive le 1er du mois précédent n’a que 30 jours (ou même 28 ou 29 pour le mois de février)?

    Un autre problème est que lorsque j’ouvre un formulaire qui a déjà été remplie, la date change pour celle d’aujourd’hui alors qu’elle devrait rester la même si le champ a déjà été rempli.
    J’ai joint une maquette.

    Merci d’avance

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

    Bonjour.

    Un autre problème est que lorsque j’ouvre un formulaire qui a déjà été rempli, la date change pour celle d’aujourd’hui alors qu’elle devrait rester la même si le champ a déjà été rempli.

    L’astuce est donnée sur cette page : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/champ-date-automatique/

    Pour le reste… Je ne sais pas.
    :joker:

    #59594
    bebarth
    Maître des clés

    Bonjour,


    Cependant, j’ai fais face à un problème lorsqu’est arrivé le 1er septembre, alors que la date d’hier est devenue 09/31/2015. Il est évident que ça aurait dû être 08/31/2015…

    Dans votre script, vous testez si le jour de la semaine est un lundi avec if(this.getField(“WeekDay”).value == “Mon”, et si c’est cas, vous ne modifiez que le jour… il faut également modifier le mois et même l’année !!!
    voici un script de remplacement je pense assez compréhensible :

    var m = this.getField(“ScanDate_month”);
    var y = this.getField(“ScanDate_year”);
    var fld = this.getField(“ScanDate_day”);
    var d1 = new Date();
    var num = d1.valueOf();

    if(this.getField(“WeekDay”).value == “Mon”)
    {
    num += -(1000 * 60 * 60 * 24 * 3);
    }

    else

    {
    num += -(1000 * 60 * 60 * 24);
    }

    if(m.value==” “) m.value = util.printd (“mm”, new Date(num));
    if(fld.value==” “) fld.value = util.printd (“dd”, new Date(num));
    if(y.value==” “) y.value = util.printd (“yyyy”, new Date(num));

    :bonjour:

    #59595
    Rockabilly
    Participant

    Merci bebarth
    Le script a réglé mes 2 problèmes

    #59596
    Rockabilly
    Participant

    J’aurais une nouvelle question.
    Lorsqu’arrivera le 12/29/2015, je voudrais que la date du scan soit le 12/24/2015 plutôt que le 12/28/2015. J’ai essayé plusieurs façons, mais je n’y arrive pas.
    J’ai essayé:
    if(this.getField(“Today”).value == “12/29/2015”){
    m.value = util.printd (“mm”, new Date(num));fld.value = util.printd (“dd”, new Date(num));y.value = util.printd (“yyyy”, new Date(num));
    [font=verdana, arial, sans-serif]}

    [/font]

    #59597
    Rockabilly
    Participant

    Encore moi avec la même question, mais j’ai réussi à faire un pas de plus en utilisant else if.

    Code:
    if(this.getField(“WeekDay”).value == “Mon”) 
    {num += -(1000 * 60 * 60 * 24 * 3);} 
     
    else if 
    ((this.getField(“WeekDay”).value == “Tue”) || (this.getField(“WeekDay”).value == “Wed”) || (this.getField(“WeekDay”).value == “Thu”) || (this.getField(“WeekDay”).value == “Fri”)) 
    {num += -(1000 * 60 * 60 * 24);} 
     
    else if 
    (this.getField(“Today”).value == “03/29/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 5);} 
     
    else if 
    (this.getField(“Today”).value == “05/24/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 4);} 
     
    else if 
    (this.getField(“Today”).value == “07/04/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 4);} 

    Le hic est que la console me dit quìl y a une erreur après la première exception, donc je ne peux pas ajouter une autre exception.
    Si j’enlève la deuxième et troisième exception, ça fonctionne bien.
    Quelqu’un peut m’aider pourquoi et comment régler cette erreur?

    #59598
    Rockabilly
    Participant

    J’ai trouvé le problème… il ne doit pas y avoir de point-virgule (;)  après la condition.

    #59599
    Merlin
    Maître des clés

    Maintenant que tu le dis, ça crève les yeux.
    :Smiley03:

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