PHP

Résolu/Fermé
lulu diana - 16 nov. 2008 à 20:49
lulu diana Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 3 février 2009 - 18 nov. 2008 à 22:20
Bonsoir,
j'ai un programme en php pour afficher la date du jour suivant pour une date tapée par l'utilisateur
j'ai esseyé, mais ça marche pas!
le code que j'ai tapé est:

<?php
$actuel = $_POST['demain'];
$dactuel = split("/",$actuel);
$jour = $ dactuel[0];
$mois = $ dactuel[1];
$ans = $ dactuel[2];
$nbj = array("0","31","28","31","30","31","30","31","31","30","31","30","31");
echo"le mois est:".$mois."<br>";
if($jour<$nbj[(int)$mois])
{
$jour= $jour+1;
}
else
if($jour==$nbj[(int)$mois])
{if($mois=="12")
{$mois="1";
$jour="1";
$ans= $ans+1;
}
else if($mois<"12")
{$jour="1";
$mois= $mois+1;
}
}

echo"le lendemain est le".$jour."-".$mois."-".$ans;
?>
j'espère que quelqu'un peut m'aider; merci d'avance
A voir également:

5 réponses

Bonjour

Si tu ne disais ce qui ne marche pas (message d'erreur, comportement...) ça pourrait aider.
Et si tu ne mettais pas d'espace entre $ et dactuel[0]; ça pourrait mieux marcher
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 nov. 2008 à 21:17
Bonsoir,

une petite sol plus simple en passant par le timeqtamp UNIX (nbr de secondes écoulées depuis le premier janv 1970) pour une date

<?php
$actuel = $_POST['demain'];
$dactuel = split("/",$actuel);
$jour = $ dactuel[0];
$mois = $ dactuel[1];
$ans = $ dactuel[2];
//calcul du timestamp du jour rentre a 0heure 0 min 0 sec
$timestamp_actuel=mktime(0,0,0,$jour,$mois,$ans);
//on y rajoute 3600*24=86400 sec
$timestamp_demain=$timestamp_actuel+86400;
//et on réaffiche la nouvelle date au format voulu
echo "le lendemain est le ".date("d-m-Y",$timestamp_demain);

?>
0
merci pour m'aider, mais le message d'erreur qui s'affiche est
"Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in C:\date\B.php on line 4"
0
j'ai essayé vos suggestions mais pas de nouveau;
j'ai essayé de modifier le programme une autre fois mais le même résultat s'affiche
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 nov. 2008 à 22:06
il y a des espaces entre $ et le nom de variable

<?php
$actuel = $_POST['demain'];
$dactuel = split("/",$actuel);
$jour = $ dactuel[0];
$mois = $ dactuel[1];
$ans = $ dactuel[2];


<?php
$actuel = $_POST['demain'];
$dactuel = split("/",$actuel);
$jour = $dactuel[0];
$mois = $dactuel[1];
$ans = $dactuel[2];
0
lulu diana > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
16 nov. 2008 à 22:19
j'ai essayé ce que t'as proposé mais le message d'erreur devient:
"Notice: Undefined index: demain in C:\for.date\date.php on line 2

Notice: Undefined offset: 1 in C:\for.date\date.php on line 5

Notice: Undefined offset: 2 in C:\for.date\date.php on line 6
le lendemain est le--"
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
16 nov. 2008 à 22:24
Je pense que ton formulaire envoie la date en faisant une méthode GET (celle par défaut).
Change $_POST par $_REQUEST ou $_GET, pour tester.
0
j'ai essayé mais pas de nouveau; Merci pour votre aide
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > lulu diana
16 nov. 2008 à 22:54
si index demain est indefined essayes

<?php
if(isset($_POST['demain'])){
$actuel = $_POST['demain'];
$dactuel = split("/",$actuel);
$jour = $ dactuel[0];
$mois = $ dactuel[1];
$ans = $ dactuel[2]; 



} //n'oublie pas cette accolade bien sur

0
lulu diana > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
16 nov. 2008 à 23:00
merci, j'ai essayé, pas de message d'erreur mais aussi pas d'affichage
la page affichée est vide
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > lulu diana
17 nov. 2008 à 11:02
quel est le code de la page qui appelle ce script

donnes moi le code ainsi que ton code de ce script en entier

en plus, je ne comprend pas CCM mets de espaces à chaque fois entre $ et le nom de variable
0
lulu diana Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 3 février 2009 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
17 nov. 2008 à 21:07
le code de la page qui appelle le script:
"<html>
<body>
<form action="date.php" method="post">
<div align="left">La date est:
<input type="date" name="La date est" size="20" value="jj/mm/aa">
</div>
<div align="center"><br>
<input type="submit" align="CENTER" value="demain">

</div>
</body>
</html>"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour

Très bizarre, je ne connais pas le type date dans les formulaires, plutôt le type text. Et tu appelles ton champ "La date est" dans ton formulaire mais 'demain' dans ton traitement. Comment ça pourrait marcher ?
remplace
<input type="date" name="La date est" size="20" value="jj/mm/aa">
par
<input type="text" name="demain" size="20" value="jj/mm/aa">
0
lulu diana Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 3 février 2009
18 nov. 2008 à 22:20
merci beaucoup, ça marche bien, vraiment la faute était bizarre!
Merci
0