comment incrémenter une date ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment incrémenter une date ?

par zeus » 22 déc. 2008, 10:34

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par Tohru222 » 21 déc. 2008, 19:21

... oui je lis les réponse et je galère pour kke chose qui devrait être simple normalement....

j'ai essayé

Code : Tout sélectionner

$ts3 = strtotime("+ 3 month", $DernDate); echo "+3 mois:".date('d/m/Y',$ts3)."<br>";
pour ma $DernDate le 2008-12-17, j'ai une date de + 3 mois de 1970-04-01

J'ai regardé sur le site le tuto de date, et ça marche !!!!!!!!!!!!!!!

mon code pour ceux que ça intéresse :

Code : Tout sélectionner

$date = Array('annee'=>substr($DernDate, 0, 4), 'mois'=>substr($DernDate, 5, 2), 'jour'=>substr($DernDate, 8, 2)); $N = 90; $time = mktime(00, 00, 00, $date['mois'], $date['jour']+$N, $date['annee']); $dansNjours = date('d/m/Y', $time); echo "+3 mois:".$dansNjours."<br>";
merciii

par luc@s » 21 déc. 2008, 16:46

Bonjour,

Merci pour vos réponses. J'ai essayé ça :
$ts3 = strtotime("+ 3 month", $ts);
mais heu... je sais que je suis lourde, mais après je fais quoi ? Car si j'affiche $ts3, ben ça me met une suite de chiffre incompréhensible (7778008).

J'ai mis $ts3 = strtotime("+ 3 month", $madate);
madate étant au format date.....
tu lis les réponses ?

par AB » 21 déc. 2008, 16:30

Sinon il y a aussi un tuto sur la manipulation des dates ici http://www.phpfrance.com/forums/voir_sujet-8323.php

par jojolapine » 21 déc. 2008, 16:28

Comme son nom l'indique, strtotime() renvoi un timestamp, d'où l'impossibilité pour toi de le lire facilement...
Utilise la fonction date()
exemple
$ts3 = strtotime("+ 3 month", $ts);
echo date('d/m/Y',$ts3);

par Tohru222 » 21 déc. 2008, 16:13

Bonjour,

Merci pour vos réponses. J'ai essayé ça :
$ts3 = strtotime("+ 3 month", $ts);
mais heu... je sais que je suis lourde, mais après je fais quoi ? Car si j'affiche $ts3, ben ça me met une suite de chiffre incompréhensible (7778008).

J'ai mis $ts3 = strtotime("+ 3 month", $madate);
madate étant au format date.....

par luc@s » 20 déc. 2008, 18:19

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.
http://fr.php.net/manual/fr/function.strtotime.php
;)
sauf que je parle de manipuler du timestamp à 100 %.
Uniquement la fonction date() à l'affichage.

Et alors, je n'utiliserais pas strtotime, mais l'opérateur d'addition :

en gros (sans compter les mois de 30 ou 31 jours)
$time = $last_connection + 24 * 3600 * 30;
:wink:

par chrislabricole » 20 déc. 2008, 17:59

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.
http://fr.php.net/manual/fr/function.strtotime.php
;)

par luc@s » 20 déc. 2008, 17:49

intéressant, je ne connaissais pas cette fonction...
Mais bon, le timestamp c'est toujours plus maintenable :roll: :)

par caroube » 20 déc. 2008, 16:38

$ts3 = strtotime("+ 3 month", $ts);

par Tohru222 » 20 déc. 2008, 16:36

Re,

j'ai essayé

Code : Tout sélectionner

$date = explode('-', $date); $date[1] += 3; $date = $date[0] . '-' . $date[1] . '-' . $date[2];
ça marche bien. sauf que..... si ma date est au mois de décembre. Faire + 3 mois, me met en mois : 15 et non 03. J'ai pas oublié kke chose?

et pour le timestamp... disons ke j'ai quasi fini mon site, et me ferait chier de repasser page par page pour modifier ce format de date.

par luc@s » 20 déc. 2008, 16:12

Déjà, tu devrais travailler avec le timestamp (nb de secondes, la date étant le nombre de secondes écoulées depuis le 1er Janvier 1970).
D'ailleurs, je serais toi, je stockerais un timestamp en BDD et à l'affichage je ferais :
<?php echo date('Y-m-d', $timestamp); ?>
Mais si tu veux conserver ton système, tu peux toujours découper ta chaine de date en tableau, puis incrémenter les mois :
<?php
$date = explode('-', $date);
$date[1] += 3;
$date = $date[0] . '-' . $date[1] . '-' . $date[2];

comment incrémenter une date ?

par Tohru222 » 20 déc. 2008, 15:44

Bonjour,

Je veux faire un truc tout simple, mais en cherchant j'ai trouvé des trucs que je n'arrive pas à utiliser pour mon cas et j'y comprend rien. Je veux vérifier les comptes utilisateurs non utilisés depuis au moins 3 mois.

je récupère la date de ma base de données ($DernDate) et je veux l'incrémenter de 3 mois (pour comparer cette nvelle date à la date du jour).

comment je peux faire pour incrémenter ma $DernDate de 3 mois ? Elle est au format ("Y-m-d")

merci