Date et formulaire
Résolu
freerider_76
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
freerider_76 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
freerider_76 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis avec mes dates en PHP que je souhaite faire passer en POST par un formulaire afin de réaliser semaine précédente et semaine suivantes.
Voici mon code :
<?php
setlocale(LC_TIME, 'fr_FR', 'french', 'fre', 'fra');
if(isset($_POST['today']))
{
$auj = date($_POST['today'], strtotime('+1week'));
}
else
{
$auj = date('Y-m-d');
}
$t_auj = strtotime($auj);
$p_auj = date('N', $t_auj);
if($p_auj == 1)
{
$deb = $t_auj;
$fin = strtotime($auj.' + 6 day');
}
else if($p_auj == 7){
$deb = strtotime($auj.' - 6 day');
$fin = $t_auj;
}
else{
$deb = strtotime($auj.' - '.(6-(7-$p_auj)).' day');
$fin = strtotime($auj.' + '.(7-$p_auj).' day');
}
?>
<table>
<tr>
<?php
while($deb <= $fin)
{
?>
<th>
<?php
echo strftime('%A %d %B', $deb);
$deb += 86400;?>
</th>
<?php
}
?>
</tr>
</table>
<form action="reservation.php" method="post">
<input type="hidden" id="today" name="today" value="<?php echo $auj; ?>" />
<input type="submit" value="Semaine Suivante" />
</form>
</body>
</html>
Donc l'opération ne se réalise pas, la variable n'est pas prise en compte et je reste toujours sur la même semaine ce qui n'est pas terrible ! ^^
Lorsque je remplace $_POST['today'] par 'Y-m-d' cela fonctionne mais que pour une semaine bien évidemment...
Si quelqu'un à la solution !
Je vous remercie d'avance pour votre aide !
J'ai un petit soucis avec mes dates en PHP que je souhaite faire passer en POST par un formulaire afin de réaliser semaine précédente et semaine suivantes.
Voici mon code :
<?php
setlocale(LC_TIME, 'fr_FR', 'french', 'fre', 'fra');
if(isset($_POST['today']))
{
$auj = date($_POST['today'], strtotime('+1week'));
}
else
{
$auj = date('Y-m-d');
}
$t_auj = strtotime($auj);
$p_auj = date('N', $t_auj);
if($p_auj == 1)
{
$deb = $t_auj;
$fin = strtotime($auj.' + 6 day');
}
else if($p_auj == 7){
$deb = strtotime($auj.' - 6 day');
$fin = $t_auj;
}
else{
$deb = strtotime($auj.' - '.(6-(7-$p_auj)).' day');
$fin = strtotime($auj.' + '.(7-$p_auj).' day');
}
?>
<table>
<tr>
<?php
while($deb <= $fin)
{
?>
<th>
<?php
echo strftime('%A %d %B', $deb);
$deb += 86400;?>
</th>
<?php
}
?>
</tr>
</table>
<form action="reservation.php" method="post">
<input type="hidden" id="today" name="today" value="<?php echo $auj; ?>" />
<input type="submit" value="Semaine Suivante" />
</form>
</body>
</html>
Donc l'opération ne se réalise pas, la variable n'est pas prise en compte et je reste toujours sur la même semaine ce qui n'est pas terrible ! ^^
Lorsque je remplace $_POST['today'] par 'Y-m-d' cela fonctionne mais que pour une semaine bien évidemment...
Si quelqu'un à la solution !
Je vous remercie d'avance pour votre aide !
A voir également:
- Date et formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Whatsapp date incorrecte ✓ - Forum Mobile
3 réponses
$auj = date($_POST['today'], strtotime('+1week'));
Le premier paramètre de date est le format de sortie, $_POST["today"] contiens le jour non ?
$auj = date($_POST['today'], mktime(0,0,0,date("n"),$_POST['today'])); devrait fonctionner si j'ai bien compris ton code :)
Le premier paramètre de date est le format de sortie, $_POST["today"] contiens le jour non ?
$auj = date($_POST['today'], mktime(0,0,0,date("n"),$_POST['today'])); devrait fonctionner si j'ai bien compris ton code :)
Bonjour Nhay et merci de ton aide,
$_POST['today'] contient : 2012-11-30 donc le jour d'aujourd'hui lors du premier envoie. lorsque je clique sur semaine suivante.
lorsque je fait cela :
if(isset($_POST['today']))
{
$auj = $_POST['today'];
echo $auj;
}
cela m'affiche donc bien la date envoyer : 2012-11-30.
lorsque je souhaite donc ajouter une semaine à cette date :
$auj = date($_POST['today'], strtotime('+1week'));
ne fonctionne pas aucune opération ne s'execute,
alors que si je fait :
$auj = date('Y-m-d', strtotime('+1week')); qui récupère donc exactement la même chose que $_POST['today'] cela fonctionne et j'obtiens bien la semaine suivante...
j'ai donc essayer ce que tu m'a donné mais cela ne fonctionne pas ou alors je l'ai mal placé ... ou tu le met dans mon code ?
Merci
$_POST['today'] contient : 2012-11-30 donc le jour d'aujourd'hui lors du premier envoie. lorsque je clique sur semaine suivante.
lorsque je fait cela :
if(isset($_POST['today']))
{
$auj = $_POST['today'];
echo $auj;
}
cela m'affiche donc bien la date envoyer : 2012-11-30.
lorsque je souhaite donc ajouter une semaine à cette date :
$auj = date($_POST['today'], strtotime('+1week'));
ne fonctionne pas aucune opération ne s'execute,
alors que si je fait :
$auj = date('Y-m-d', strtotime('+1week')); qui récupère donc exactement la même chose que $_POST['today'] cela fonctionne et j'obtiens bien la semaine suivante...
j'ai donc essayer ce que tu m'a donné mais cela ne fonctionne pas ou alors je l'ai mal placé ... ou tu le met dans mon code ?
Merci
Bon après de nombreuses tentatives j'ai réussi à faire ce que je souhaitais !
Voici mon code :
if(isset($_POST['today']))
{
$date = date_create($_POST['today']);
date_add($date, date_interval_create_from_date_string('+7 days'));
$auj = date_format($date, 'Y-m-d');
}
Encore merci Nhay pour ton aide qui m'a permis d'approfondir mktime() ;)
Voici mon code :
if(isset($_POST['today']))
{
$date = date_create($_POST['today']);
date_add($date, date_interval_create_from_date_string('+7 days'));
$auj = date_format($date, 'Y-m-d');
}
Encore merci Nhay pour ton aide qui m'a permis d'approfondir mktime() ;)