Au sujet des dates

Eléphant du PHP | 231 Messages

06 mars 2005, 14:22

j'ai une date stoker en base que je recupere de la maniere suivante
mysql_result($req,0,"dateheure")
je souhaiterai ajouter a cette date 30 jours ...
j'ai regarder dans les fonctions php pour les dates et apparement il faut que j'utilise la fonction mktime
le seul pb c'est que cette fonction est apparement avec la date de ce jour et non avec une autre date

l'ajout de seconde me parait peu sur ... et peut etre source d'erreur

comment puis je faire ?
(j'ai pas tout a fait compris comment elle fonctionne mktime ^^)

ViPHP
ViPHP | 60 Messages

06 mars 2005, 15:49

Hello,

La fonction mktime() te permet de générer un entier unique pour une date donnée (un timestamp). Tu peux lui préciser quelque date que ce soit, la seule contrainte étant que tu aies facilement accès à l'année, au mois, au jour, etc.

Mais dans ton cas, pourquoi n'utilises-tu pas des fonctions SQL toutes faites ?
Par exemple, la fonction DATE_ADD() sous MySQL ?
(voir http://dev.mysql.com/doc/mysql/fr/date- ... tions.html)

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 18:19

SELECT ADDDATE('mysql_result($req,0,"dateheure")', INTERVAL 30 DAY);
c'est possible un truc dans ce genre la ?

ViPHP
ViPHP | 60 Messages

06 mars 2005, 18:23

SELECT ADDDATE('mysql_result($req,0,"dateheure")', INTERVAL 30 DAY);
c'est possible un truc dans ce genre la ?
Attention à ne pas mélanger PHP et SQL...
Tu dois incorporer ta fonction de manipulation de date dans ta requête SQL initiale, donc dans la requête que tu as passé en paramètre à la fonction mysql_query() qui t'a retourné $req...

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 18:38

j'ai fait ceci :
$date_fin = mysql_query("SELECT ADDDATE('dateheure', INTERVAL 30 DAY) from joueurs where id=\"".$_GET["id_joueurs"]."\"");
$date_fin = date_format($date_fin);

ensuite plus loin y'a echo(date_fin)

mé y'a rien qui s'affiche :cry:

ViPHP
ViPHP | 60 Messages

06 mars 2005, 18:58

Normal : La fonction mysql_query() te retourne une ressource pour accéder aux résultats, pas directement les résultats... ;)

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 19:01

on utilise donc :lol:

c koi la fonction pour avoir direct le resultat sans passer par 50 lignes ? :cry:

ViPHP
ViPHP | 60 Messages

06 mars 2005, 19:16

Pas besoin de 50 lignes...
Après ton mysql_query(), tu peux utiliser mysql_fetch_assoc() par exemple...
Au passage, évite mysql_result()...

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 19:20

j'ai fait
$date_fin = mysql_query("SELECT ADDDATE('dateheure', INTERVAL 30 DAY) from joueurs where id=\"".$_GET["id_joueurs"]."\"");
$date_fin = mysql_fetch_assoc($date_fin);
mé toujours rien ^^
j'ai trop de mal avec ces requetes sql :cry: :cry:

Mammouth du PHP | 1885 Messages

06 mars 2005, 19:28

$date_fin = mysql_query("SELECT ADDDATE('dateheure', INTERVAL 30 DAY) from joueurs where id=\"".$_GET["id_joueurs"]."\"");
list($date_fin) = mysql_fetch_row($date_fin);
;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 231 Messages

06 mars 2005, 19:33

tjrs pas
j'ai fait ça aussi :
$date_fin = mysql_fetch_array($date_fin);
$date_fin = $date_fin['dateheure'];
mé tjrs rien :cry:

sachant que la date doit rester sous la meme forme que le depart ...
2005-02-08 13:07:50
parce que apres elle passe dans une fonction pour etre remise en français plus clair ^^

ViPHP
ViPHP | 60 Messages

06 mars 2005, 19:44

Hello,

Ce ne doit pas être
SELECT ADDDATE('dateheure', INTERVAL 30 DAY) from
Mais
SELECT ADDDATE(dateheure, INTERVAL 30 DAY) from
Attention aussi à tester le nombre de résultats en retour avant d'utiliser mysql_fetch_row() ou autre, via la fonction mysql_num_rows().

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 22:00

merci ...

bon autre pb ^^

voila je fait
echo(date("Y-m-d H:m:s",mktime(0, 0, 0, date("m"), date("d")+7, date("Y")));
ça me retourne 2005-03-13 00:03:00 alors qu'il est 20:50 ^^

pk ça me met 00:03:00 ?

moi je voudrais 2005-03-13 20:50:00 :?
Modifié en dernier par dark_vidor le 08 mars 2005, 09:06, modifié 1 fois.

ViPHP
ViPHP | 60 Messages

06 mars 2005, 22:14

Hello,

Pourquoi passer par mktime() si tu veux la même heure ?
Garde ton expression en y retirant H:m:s et en concaténant l'appel à la fonction date avec l'arguement H:m:s pour rajouter l'heure courante...

/Flood

Eléphant du PHP | 231 Messages

06 mars 2005, 22:39

ouep quel boulet j'y est pas penser ^^

bon j'ai un pb avec le truc de toute a l'heure ...

les dates c pas toujours + 30 jours ...
il faut que par exemple si l'inscription a eu lieu le 16/02/05
la date de fin soit 15/03/05
et ça en fait quelque soit le mois :roll: