Aide script date
amenosyla
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour, je suis éleveur félin et je voudrais mettre en place un calendrier de gestation. J'ai trouvé un script qui fonctionne parfaitement à un détail près. Il ne tient pas compte des années bissextile :(
La gestation chez un chat dure entre 63 et 70 jours.
exemple: si j'entre une date de saillie telle que 06/02/2010 + 63 jours il me retourne en résultat, pour la mise bas, 10/04/2010 ce qui est faux car ce devrait être le 12/04/2010. Donc comment modifier ce script ?
La gestation chez un chat dure entre 63 et 70 jours.
exemple: si j'entre une date de saillie telle que 06/02/2010 + 63 jours il me retourne en résultat, pour la mise bas, 10/04/2010 ce qui est faux car ce devrait être le 12/04/2010. Donc comment modifier ce script ?
<?php
if ($submit == 'Calculer') {
if ($compute == 'sub') {
$day = $day - $days;
} elseif ($compute == 'add') {
$day = $day + $days;
}
$echo = date($output, mktime (0,0,0,$month,$day,$year)); //ceci est la date calculée
}
echo "
<form action=\"\" method=post>
<table border=0 cellspacing=1 cellpadding=2 bgcolor=blue width=300>
<tr>
<td bgcolor=blue><font color=white face=arial><B>Date Calculée"; if (!empty($echo)) {echo " - Résultat: $echo";} echo "</B></font></td>
</tr>
<tr>
<td bgcolor=white>
<table border=0 cellpadding=3 cellspacing=0>
<tr>
<td aligin=left><font color=blue face=arial>Choisir date: </font></td><td aligin=left><select name=day>";
getoption(1, 31, date("d"));
echo "</select><select name=month>";
getoption(1, 12, date("m"));
echo "</select><select name=year>";
getoption(1970, 2020, date("Y"));
echo "</select></td>
</tr>
<tr>
<td aligin=left><font color=blue face=arial>Additionner</font></td><td aligin=left><select name=compute><option value=add>+<option value=sub>-</select>
<input type=text name=days size=4 maxlength=4><font color=blue face=arial> jour(s)</font></td>
</tr>
<tr>
<td aligin=left><font color=blue face=arial>Format de sortie: </font></td><td aligin=left><select name=output><option value=\"d-m-Y\">dd-mm-YYYY<option value=\"l, d M Y\">weekday, dd mm yyyyy</select></td>
</tr>
<tr>
<td aligin=left colspan=2><input type=submit name=submit value=Calculer></td>
</tr>
</table>
</td></tr></table></form>";
function getoption($start, $end, $if) {
for ($i=$start;$i<=$end;$i++) {
echo "<option value=$i"; if ($i == $if) { echo " selected";} echo ">$i";
}
}
?>
A voir également:
- Aide script date
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Script les visiteurs pdf - Forum Cinéma / Télé
- Trouver une date de naissance gratuit - Forum Webmastering
- Jm date - Forum Consommation & Internet
3 réponses
<?php
//il faut recuperer les valeurs dans le $_POST car si dans ton php.ini Register Global est à off ça ne marcherait pas
if (isset($_POST['submit']) && $_POST['submit'] == 'Calculer') {
extract($_POST); //transforme tous les $_POST des champs en une variable correspondante au nom du champ
//en passant par le timestamp ça résoud le pb des mois 30 / 31 / 28 /29
//calcul du timestamp date saisie
$timestamp_date_saisie=mktime (0,0,0,$month,$day,$year);
if ($compute == 'sub') {
$timestamp_date_calculee=$timestamp_date_saisie - ($days*3600*24);
} elseif ($compute == 'add') {
$timestamp_date_calculee=$timestamp_date_saisie + ($days*3600*24);
}
$resultat = date($output,$timestamp_date_calculee); //ceci est la date calculée
//ce n'est pas très judicieux de choisir des noms de variables correspondant a des noms réservés php comme echo etc....
}
echo "
<form action=\"\" method=post>
<table border=0 cellspacing=1 cellpadding=2 bgcolor=blue width=300>
<tr>
<td bgcolor=blue><font color=white face=arial><B>Date Calculée";
if (!empty($resultat)) {echo " - Résultat: $resultat";}
echo "</B></font></td>
</tr>
<tr>
<td bgcolor=white>
<table border=0 cellpadding=3 cellspacing=0>
<tr>
<td aligin=left><font color=blue face=arial>Choisir date: </font></td><td aligin=left><select name=day>";
getoption(1, 31, date("d"));
echo "</select><select name=month>";
getoption(1, 12, date("m"));
echo "</select><select name=year>";
getoption(1970, 2020, date("Y"));
echo "</select></td>
</tr>
<tr>
<td aligin=left><font color=blue face=arial>Additionner</font></td><td aligin=left><select name=compute><option value=add>+<option value=sub>-</select>
<input type=text name=days size=4 maxlength=4><font color=blue face=arial> jour(s)</font></td>
</tr>
<tr>
<td aligin=left><font color=blue face=arial>Format de sortie: </font></td><td aligin=left><select name=output><option value=\"d-m-Y\">dd-mm-YYYY<option value=\"l, d M Y\">weekday, dd mm yyyyy</select></td>
</tr>
<tr>
<td aligin=left colspan=2><input type=submit name=submit value=Calculer></td>
</tr>
</table>
</td></tr></table></form>";
function getoption($start, $end, $if) {
for ($i=$start;$i<=$end;$i++) {
echo "<option value=$i"; if ($i == $if) { echo " selected";} echo ">$i";
}
}
?>
amenosyla
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
j'ai recopié ce code et là ça ne calcule plus
J'ai rectifié un peu ton code, chez moi ça marche nickel
les valeurs des arguments dans les balises HTML doivent tous être entre "
dans les listes <select il faut <option value="....">xxxxxx</option>
et mis un echo pour voir si on passe bien dans le if
les valeurs des arguments dans les balises HTML doivent tous être entre "
dans les listes <select il faut <option value="....">xxxxxx</option>
et mis un echo pour voir si on passe bien dans le if
<?php
//fonction php
function getoption($start, $end, $if) {
for ($i=$start;$i<=$end;$i++) {
echo "<option value=$i"; if ($i == $if) { echo " selected";} echo ">$i</option>";
}
}
//fin fonction
if (isset($_POST['submit']) && $_POST['submit'] == 'Calculer') {
extract($_POST); //transforme tous les $_POST des champs en une variable correspondante au nom du champ
// TEST
echo "date saisie :".$day."-".$month."-".$year;
//fin TEST
//en passant par le timestamp ça résoud le pb des mois 30 / 31 / 28 /29
//calcul du timestamp date saisie
$timestamp_date_saisie=mktime (0,0,0,$month,$day,$year);
if ($compute == 'sub') {
$timestamp_date_calculee=$timestamp_date_saisie - ($days*3600*24);
} elseif ($compute == 'add') {
$timestamp_date_calculee=$timestamp_date_saisie + ($days*3600*24);
}
$resultat = date($output,$timestamp_date_calculee); //ceci est la date calculée
//ce n'est pas très judicieux de choisir des noms de variables correspondant a des noms réservés php comme echo etc....
}
?>
<form name="form1" action="" method="post">
<table border="0" cellspacing="1" cellpadding="2" bgcolor="blue" width="300">
<tr>
<td bgcolor="blue"><font color="white" face="arial"><b>Date Calculée
<?php
if (!empty($resultat)) {echo " - Résultat: ".$resultat;}
?>
</b></font></td>
</tr>
<tr>
<td bgcolor="white">
<table border=0 cellpadding=3 cellspacing=0>
<tr>
<td aligin="left"><font color="blue" face="arial">Choisir date: </font></td>
<td aligin="left">
<select name="day">
<?php
getoption(1, 31, date("d"));
echo "</select><select name=month>";
getoption(1, 12, date("m"));
echo "</select><select name=year>";
getoption(1970, 2020, date("Y"));
echo "</select></td>";
?>
</tr>
<tr>
<td aligin="left"><font color="blue" face="arial">Additionner</font></td>
<td aligin="left">
<select name="compute">
<option value="add">+</option>
<option value="sub">-</option>
</select>
<input type="text" name="days" size="4" maxlength="4"><font color="blue" face="arial"> jour(s)</font>
</td>
</tr>
<tr>
<td align="left"><font color="blue" face="arial">Format de sortie: </font></td>
<td align="left">
<select name="output">
<option value="d-m-Y">dd-mm-YYYY</option>
<option value="l, d M Y">weekday, dd mm yyyyy</option>
</select>
</td>
</tr>
<tr>
<td aligin="left" colspan="2"><input type="submit" name="submit" value="Calculer"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
Et aussi, tu n'avait peut être pas modifié la ligne:
<td bgcolor=blue><font color=white face=arial><B>Date Calculée"; if (!empty($echo)) {echo " - Résultat: $echo";} echo "</B></font></td>
par:
<td bgcolor=blue><font color=white face=arial><B>Date Calculée"; if (!empty($echo)) {echo " - Résultat: $echo";} echo "</B></font></td>
par:
<td bgcolor=blue><font color=white face=arial><B>Date Calculée";
if (!empty($resultat)) {echo " - Résultat: $resultat";}
echo "</B></font></td>