Calcul php

Résolu
Bonjour,

J'ai dans une variable php ceci :
$var = 20101201;

je n'arrive pas à ajouter 1 à ce chiffre de maniere à avoir 20101202.
Si je fais $var = $var + 1 il me sort 2010122 ...

Merci de m'aider

11 réponses

  1. Et en faisant comme ceci :
    $var += $var + 1
    

    Le += permet d'additionner deux valeurs et de stocke le résultat dans la variable $var
    0
    1. Nan ... ça ne fonctionne pas ...

      Merci quand meme
      0
      1. Je viens de tester ton code :
        <?php
        $var = 20101201;
        $var = $var + 1;
        echo $var;
        ?>

        Et j'ai bien 20101202
        0
        1. $var++

          ou

          $var += 1 et non pas $var += $var + 1;
          0
          1. oui je suis d'accord avec toi !!

            Le probleme est que je récupere à l'aide de la fonction substr seulement 2 chiffres :

            $var = substr($date1, 6, 2);

            Et la lorsque je fais : $var = $var + 1; alors que $var contient 02 au départ je me retrouve avec $var qui vaut 3 et non 03 ...
            0
            1. Merci azerty0, je crois bien que tu viens de me donner la solution.

              Avec $var = $var + 1 => NON
              Avec $var += 1 => NON
              Avec $var = $var++ => OUI

              Aller savoir pourquoi ...

              Merci encore
              0
              1. Peut être peux tu vérifier le nombre de caractère de ta chaine
                si c'est égale à 1 tu met le 0 devant non ?
                0
                1. Eh bien en fait non, $var = $var++ ne me change absolument rien ...
                  0
                  1. Contributeur
                    Bonjour,

                    quelle version de php utilises-tu ?
                    0
                    1. Si j'ai bien compris, c'est un soucis avec ta chaine de caractère qui recoit un 02 comme un entier et qui dégage donc le 0,

                      J'ai envie de dire, te prends pas la tête, fais un test sur la longueur de la chaine, et rajoute le 0 ensuite !
                      0
                      1. Je viens de lui dire :)
                        les grands esprits se rencontrent :p
                        0
                      2. oups, j'avais pas vus, désolé. Tu portes pas plainte pour plagia hein :)
                        0
                      3. Contributeur
                        Bonjour,

                        Melooo et azerty0, vous avez tous les deux raison dans l'absolu.

                        Sauf qu'il me semble d'après les précédents posts que notre ami travaille avec une date à laquelle il veut rajouter 1(plusieurs ?) jour(s). Et dans ce cas, c'est une très mauvaise idée de bricoler en rajoutant des 0 de-ci de-là. php fournit assez de méthodes pour se débrouiller "proprement".

                        Un contre-exemple simple :
                        Si $var = 31, // On est le 31.
                        $var++ vaudra 32.
                        Date qui n'existe malheureusement pas encore dans le calendrier.

                        Alors oui, on pourra enchaîner plein de tests, gérer tous les cas, etc. Cette façon de faire
                        porte un nom, ça s'appelle "réinventer la roue".

                        Donc comme il me semble que vous avez bien compris son problème, et que vous voulez l'aider, ce serait bien de le faire dans ce sens là.
                        0
                      4. Nous y avons pensé, enfin, sans vouloir impliquer Melooo.

                        Mais en informatique, j'estime que l'on comprend les choses lorsque l'on se heurte à elles. Si je lui dis que même notre aide lui apportera un futur problème, alors, il ne cherchera pas la solution et nous la demandera, ce qui n'est pas très pédagogiquement correct, tu l'entends bien ! De plus, si un jour, il est confronté à cette fameuse perte de 0, il saura palier le problème !

                        Mais ta remarque était tout de même pertinente.
                        0
                    2. J'ai donc fais cela :

                      if (strlen($var) == 1)
                      {
                      $var = '0'."".$var;
                      }

                      sans succes ...
                      0
                      1. Je viens d'essayer sur mon poste et ton code fonctionne !
                        Prends en compte également la réponse de Giorgiolino
                        0
                      2. Likopa....

                        Tu cherches un problème au mauvais endroit, le code que tu écris est correct, mais ce sont mes manipulations précédentes qui ne le sont pas, ou le passage de string en int. Alors, tu tatonnes et essayes tout et n'importe quoi.

                        Reprends ton code, mets des echo dans tous les coins pour voir ce qui arrive en entrée, ce qui ressort et je te parie que tu règle ton problème en 10 minutes !
                        0
                      3. Résolu !! merci à tous
                        0
                      4. Comme as tu fonctionné alors ?
                        0
                      5. Oui, je suis curieux de savoir, et oublies pas de mettre ton topic en résolu ;) en haut de ton premier post !
                        0