calcul avec les dates

Eléphant du PHP | 150 Messages

11 juil. 2005, 14:31

Bonjour,

j'ai un problème de soustraction de date.
Il faut que j'aille chercher une datetime ds ma base de données et que j'y soustraie la datetime de maintenant. Mais ce qui s'affiche est: -2005.
J'en conclue que je n'arrive pas à retourner la date de ma base de données et (peut-être) qu'il faut que je définisse le format de la date que je dois obtenir.
Quelqu'un a une idée?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 14:33

comment procèdes-tu ? il y a des fonctions de calcul sur les dates en MySQL : http://dev.mysql.com/doc/mysql/fr/date- ... tions.html

Eléphant du PHP | 150 Messages

11 juil. 2005, 14:41

et fait voila mon code:

$mysql_link = mysql_connect('X','X','X');
$requete = 'SELECT X FROM X WHERE X = On;';
$result = mysql_db_query('XX', $requete);
$calcul_interv = TIMESTAMP ($result) - TIMESTAMP (NOW());
$interv = echo $calcul_interv;
mysql_close ();

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 14:45

Tu mélange PHP et SQL.

TIMESTAMP est une fonction SQL que tu ne doit appeller que dans ta requete SQL

Qu'est ce que tu doit obtenir ?

parce que une date passée moins la date actuelle va toujours te donner un nombre négatif
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 150 Messages

11 juil. 2005, 14:59

et fait, non, pcq la date en question est une date future.
Je voudrais tout simplement faire un décompte: "il vous reste XXjours XXh XXmn", un peu comme sur ebay...
La date stockée dans ma base de données est en format datetime, car j'ai besoin de toutes ces données temporelles pour la gestion de mon site.

Y a-t-il quelque chose de plus simple à faire?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 15:01

alors utilise directement les fonctions SQL

NOW() te renvoie la date courante

et tu peux utiliser DATE_SUB() par exemple pour calculer une différence

ou convertir en Timestamp et soustraire

tu devrais trouver ton bonheur dans le lien que je t'ai filé ;)

Eléphant du PHP | 150 Messages

11 juil. 2005, 15:06

et fait, non, pcq la date en question est une date future.
Je voudrais tout simplement faire un décompte: "il vous reste XXjours XXh XXmn", un peu comme sur ebay...
La date stockée dans ma base de données est en format datetime, car j'ai besoin de toutes ces données temporelles pour la gestion de mon site.

Y a-t-il quelque chose de plus simple à faire?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 15:07

c'est une fausse manip ce post ou c'est réellement ta réponse au mien ? :shock:

Eléphant du PHP | 150 Messages

11 juil. 2005, 15:09

pardon, erreur de manip... :(

Rien ne te semble clocher dans mon code?
Pcq j'ai vraiment l'impression que je n'arrive pas à "afficher" le résultat de la requête...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 15:11

ben si y'a des trucs qui clochent dans ton code, zeus te l'a dit

et on te conseille d'utiliser directement les fonctions MySQL

le résultat de ta requête sera la différence entre les deux dates

Eléphant du PHP | 150 Messages

11 juil. 2005, 15:12

merci, je vais essayer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 15:16

je pense qu'une combinaison de DATEDIFF() et TIMEDIFF() devrait convenir à ce que souhaites faire

Eléphant du PHP | 150 Messages

11 juil. 2005, 15:33

oui, mais je crois que je n'arrive pas à formaliser la requête: comme disais Zeus, je mélange php et mysql...
Je dois intégrer timediff et datediff dans ma requête mysql, c'est ça?
pcq ces 2 fonctions ne sont pas des fonctions php, si?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 15:35

oui ce sont des fonctions MySQL

pour l'instant laisse le PHP, va dans phpMyAdmin (ou équivalent) et fais des essais
tu dois pouvoir obtenir ce que tu veux rien qu'en SQL
à moins qu'il faille utiliser des fonctions qui ne sont pas disponibles dans ta version de MySQL

laquelle utilises-tu ?

Eléphant du PHP | 150 Messages

11 juil. 2005, 15:38

j'utilise la version 4.0.21