Calcul php

Résolu
likopa -  
azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   -
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. Melooo Messages postés 1476 Statut Membre 84
     
    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
  2. likopa
     
    Nan ... ça ne fonctionne pas ...

    Merci quand meme
    0
  3. Melooo Messages postés 1476 Statut Membre 84
     
    Je viens de tester ton code :
    <?php
    $var = 20101201;
    $var = $var + 1;
    echo $var;
    ?>

    Et j'ai bien 20101202
    0
  4. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
     
    $var++

    ou

    $var += 1 et non pas $var += $var + 1;
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. likopa
     
    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
  7. likopa
     
    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
  8. Melooo Messages postés 1476 Statut Membre 84
     
    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
  9. likopa
     
    Eh bien en fait non, $var = $var++ ne me change absolument rien ...
    0
  10. Giorgiolino Messages postés 250 Date d'inscription   Statut Contributeur Dernière intervention   52
     
    Bonjour,

    quelle version de php utilises-tu ?
    0
  11. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
     
    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. Melooo Messages postés 1476 Statut Membre 84
       
      Je viens de lui dire :)
      les grands esprits se rencontrent :p
      0
    2. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
       
      oups, j'avais pas vus, désolé. Tu portes pas plainte pour plagia hein :)
      0
    3. Giorgiolino Messages postés 250 Date d'inscription   Statut Contributeur Dernière intervention   52
       
      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. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
       
      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
  12. likopa
     
    J'ai donc fais cela :

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

    sans succes ...
    0
    1. Melooo Messages postés 1476 Statut Membre 84
       
      Je viens d'essayer sur mon poste et ton code fonctionne !
      Prends en compte également la réponse de Giorgiolino
      0
    2. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
       
      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. likopa
       
      Résolu !! merci à tous
      0
    4. Melooo Messages postés 1476 Statut Membre 84
       
      Comme as tu fonctionné alors ?
      0
    5. azerty0 Messages postés 1270 Date d'inscription   Statut Membre Dernière intervention   75
       
      Oui, je suis curieux de savoir, et oublies pas de mettre ton topic en résolu ;) en haut de ton premier post !
      0