Calcul php

Résolu/Fermé
-
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
-
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

Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
Et en faisant comme ceci :
$var += $var + 1

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

Merci quand meme
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
Je viens de tester ton code :
<?php
$var = 20101201;
$var = $var + 1;
echo $var;
?>

Et j'ai bien 20101202
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
$var++

ou

$var += 1 et non pas $var += $var + 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 ...
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
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
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 ?
Eh bien en fait non, $var = $var++ ne me change absolument rien ...
Messages postés
251
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
52
Bonjour,

quelle version de php utilises-tu ?
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
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 !
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
Je viens de lui dire :)
les grands esprits se rencontrent :p
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
oups, j'avais pas vus, désolé. Tu portes pas plainte pour plagia hein :)
Messages postés
251
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
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à.
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
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.
J'ai donc fais cela :

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

sans succes ...
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
Je viens d'essayer sur mon poste et ton code fonctionne !
Prends en compte également la réponse de Giorgiolino
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
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 !
Résolu !! merci à tous
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
82
Comme as tu fonctionné alors ?
Messages postés
1268
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
Oui, je suis curieux de savoir, et oublies pas de mettre ton topic en résolu ;) en haut de ton premier post !