Titre: Incrémenter une date
Posté par: arnaudb le le 05-06-2006 a 19:23:08
Salut,
Comment faire pour incrémenter une date de 1 mois. J'utilise le format y-m-d ce qui me donne par exemple:
2006-06-05 et j'aimerais avoir une deuxième variable qui à pour valeur 2006-07-05
Merci |
Titre: Re:Incrémenter une date
Posté par: vertigo_76 le le 06-06-2006 a 11:19:14
Et une petite chose du genre:
list($year, $month, $day) = split('-', $date); $month = $month+1; $date2 = $year.'-'.$month.'-'.$day;
Je n'ai pas testé mais sur le principe ca doit etre bon |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 06-06-2006 a 12:24:28
| Merci je vais tester et je te tiens au courant. |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 06-06-2006 a 12:31:20
Oui ça marche mais le résultat donne 06-7-2006 à la place de 06-07-2006.
|
Titre: Re:Incrémenter une date
Posté par: tavman le le 06-06-2006 a 13:14:23
list($year, $month, $day) = split('-', $date); $month = $month+1;
$month = ( $month < 10 ) ? "0" . $month : month; $day = ( $day < 10 ) ? "0" . $day : $day;
$date2 = $year.'-'.$month.'-'.$day;
et voila... normalment, ca fonctionne... |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 06-06-2006 a 13:25:34
Voila ca marche merci, seulement j'ai enlever cela "$day = ( $day < 10 ) ? "0" . $day : $day; "
car pour les jours aucun problèmes
Merci |
Titre: Re:Incrémenter une date
Posté par: vertigo_76 le le 06-06-2006 a 14:17:31
Pour info.
J'ai trouvé cette solution sur le site http://fr3.php.net/date (http://fr3.php.net/date)
Vertigo |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 06-06-2006 a 19:06:58
Pour info.
J'ai trouvé cette solution sur le site http://fr3.php.net/date (http://fr3.php.net/date)
Vertigo
|
|
Cool merci |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 06-06-2006 a 20:34:31
| Par contre il y a un problème avec décembre bien sur. Le mois doit retourner à 1 et incrémenter l'année . |
Titre: Re:Incrémenter une date
Posté par: tavman le le 07-06-2006 a 01:35:59
Pour info.
J'ai trouvé cette solution sur le site http://fr3.php.net/date (http://fr3.php.net/date)
Vertigo
|
| Ouep j'avoue que je connaissai pas la fonction "list"... Dans ce genre de situation, je suis plus du genre a utiliser une array avec le split.... En tout cas, je vais regarder d'un peu plus pret les possibilités que ca offre.
sinon, si t'as des problèmes avec le mois, a mon avis t'aura aussi des problèmes avec le jour....
Pour incrémenter l'année, tu peut mettre ca :
$year += ( ($month == 1) && ( $day == 1) ) : 1 : 0;
ce qui revient a dire : if ( ( $month == 1 ) && ( $day == 1 ) ) { $year++; }
mais je sais pas quand tu tu active ce script... si c'est une fois par jour, dés qu'un visiteur passe, si c'est enregistré etc.
Donc là comme ca, je t'avoue que je suis pas sur que ca te convienne, mais en gros, tu peut utiliser ca. |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 07-06-2006 a 10:00:16
En fait le jour m'importe peu.
J'ai un site d'annonce, les annonces sont valables un mois. Voila, lors de l'inscription la date de fin est calculé par rapport a la date du jour.
Donc il faut juste que je puisse faire mois + 1 , mais si mois = 12 donc mois un 1 et year ++ tu saisie ? |
Titre: Re:Incrémenter une date
Posté par: real34 le le 07-06-2006 a 11:57:23
Dans ces cas là, passe plutôt par le timestamp ...
Il me semble que tu peux créer un timestamp avec "next month", mais pour confirmation, regarde à strtotime sur php.net ou date. |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 07-06-2006 a 13:23:02
| Peut etre une piste par ce que la je rame ??? |
Titre: Re:Incrémenter une date
Posté par: real34 le le 07-06-2006 a 14:31:58
Code:
<?php $dans_un_mois = strtotime("now +1 month"); echo 'Ajdh : '.date("d/m/Y", time()); echo '<br />Un mois plus tard : '.date("d/m/Y", $dans_un_mois); ?>
|
|
Pour plus d'infos, renseigne-toi sur la fonction str2time ! Bye ;) |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 07-06-2006 a 20:01:50
Code:
<?php $dans_un_mois = strtotime("now +1 month"); echo 'Ajdh : '.date("d/m/Y", time()); echo '<br />Un mois plus tard : '.date("d/m/Y", $dans_un_mois); ?>
|
|
Pour plus d'infos, renseigne-toi sur la fonction str2time ! Bye ;)
|
|
D'accord merci je vais etudier cela |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 07-06-2006 a 21:57:47
Bon ca a l'air de marcher par contre je n'arrive pas a UPDATER ma table
<?php include_once("blabla.php");
$aff_date = mysql_query("SELECT * from ".$prefixe."annonce"); while ($change_date = mysql_fetch_array($aff_date)) { $date_debut = $change_date['date'];
$dans_un_mois = strtotime("".$date_debut." +1 month"); $datefin = date("d-m-Y", $dans_un_mois);
mysql_query("UPDATE ".$prefixe."annonce SET datefin='$datefin' WHERE datefin='0000-00-00'") or die ();
mysql_free_result($aff_date); mysql_close(); } ?> |
Titre: Re:Incrémenter une date
Posté par: real34 le le 07-06-2006 a 23:14:16
| Est-ce que ton $date_debut est un timestamp ou bien simplement une date ??? |
Titre: Re:Incrémenter une date
Posté par: arnaudb le le 08-06-2006 a 09:22:27
Est-ce que ton $date_debut est un timestamp ou bien simplement une date ???
|
|
c'est une date au format "Y-m-d" |
Titre: Re:Incrémenter une date
Posté par: real34 le le 08-06-2006 a 16:24:43
Alors essaye de la passer en timestamp peut-être ... Documente toi sur la fonction strtotime, tu devbrais avoir des exemples qui te seront utiles! |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|