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 :

Ajout d'un nombre de jours � une date


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France, C�te d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par d�faut Ajout d'un nombre de jours � une date
    Bonjour � tous,

    Je n'ai pas encore trouv� d'explications � mon probl�me : je cherche � ajouter 14 jours � une date donn�e (format fran�ais jj/mm/aaaa).

    J'ai bien trouv� ce script suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
    var stringDate="12/03/2008";
    var TempDate=new Date();
    var TabDate=stringDate.split('/');
    TempDate.setFullYear(TabDate[2]);
    TempDate.setMonth(TabDate[1]);
    TempDate.setDate(TabDate[0]*1+60);
    var FinalDate=((TempDate.getDate().toString().length==1)?'0'+TempDate.getDate():TempDate.getDate())+'/'+((TempDate.getMonth().toString().length==1)?'0'+TempDate.getMonth():TempDate.getMonth())+'/'+TempDate.getFullYear()
    alert(FinalDate)
    </script>
    Source : http://www.developpez.net/forums/d63...uter-60j-date/

    Mais je rencontre un probl�me sur certains exemples qui donnent des r�sultats incoh�rents :

    Exemple saisie du 28/02/2010 donne 11/03/2010 ;
    alors que d'autres fonctionnent correctement :
    31/07/2010 donne 14/08/2010 (Ok)

    Auriez vous des id�es, un autre algo ou des pistes ?
    Je sais que des fois on ajoute un mois, mais pas de fa�on syst�matique (la preuve certains calculs fonctionnent), et 2010 n'est pas une ann�e bissextile...

    Merci par avance,

    Thec

  2. #2
    Membre confirm� Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France, C�te d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par d�faut
    A priori j'ai trouv� une autre fonction qui fait ce que je voulais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function addDaysToDate(old_date, delta_days) {
       // Date plus plus quelques jours
       var split_date = old_date.split('/');
       // Les mois vont de 0 a 11 donc on enleve 1, cast avec *1
       var new_date = new Date(split_date[2], split_date[1]*1 - 1, split_date[0]*1 + delta_days);
       var new_day = new_date.getDate();
           new_day = ((new_day < 10) ? '0' : '') + new_day; // ajoute un zéro devant pour la forme
       var new_month = new_date.getMonth() + 1;
           new_month = ((new_month < 10) ? '0' : '') + new_month; // ajoute un zéro devant pour la forme
       var new_year = new_date.getYear();
           new_year = ((new_year < 200) ? 1900 : 0) + new_year; // necessaire car IE et FF retourne pas la meme chose
       var new_date_text = new_day + '/' + new_month + '/' + new_year;
       return new_date_text;
    }
    R�solu, mais intrigu� par les r�sultats de la premi�re fonction.

    Thec

  3. #3
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Parce que la premi�re fonction ne prend pas en compte que les mois commencent � 0 en JavaScript, donc la nouvelle date est mise � jour en fonction du nombre de jours du mois suivant.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    var maDate = "28/02/2010";
    var tabDate = maDate.split('/');
    var next14 = new Date(tabDate[2], tabDate[1]-1, +tabDate[0]+14);
    alert(next14.toLocaleString());
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirm� Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France, C�te d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par d�faut
    Simple et concis, parfait j'ai compris.

    Merci pour l'explication,

    Thec

    PS : en plus c'est �crit dans le commentaire de la seconde fonction, j'aurai pu y penser, mais je n'avais pas pens� que javascript prenait en compte le nombre de jour du mauvais mois...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ajouter un nombre de jours � une date
    Par FanFan44 dans le forum D�butez
    R�ponses: 1
    Dernier message: 10/07/2013, 13h04
  2. R�ponses: 3
    Dernier message: 28/02/2012, 19h03
  3. Ajouter un nombre de jour � une date
    Par thierry_b dans le forum G�n�ral Java
    R�ponses: 6
    Dernier message: 10/12/2008, 15h19
  4. R�ponses: 2
    Dernier message: 03/01/2006, 14h58
  5. [Dates] Soustraire un nombre de jour � une date
    Par lesgars dans le forum Langage
    R�ponses: 2
    Dernier message: 09/12/2005, 14h43

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