Page 1 sur 2

calcul avec les dates

Posté : 11 juil. 2005, 14:31
par alcofribas
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?

Posté : 11 juil. 2005, 14:33
par ouckileou
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

date

Posté : 11 juil. 2005, 14:41
par alcofribas
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 ();

Posté : 11 juil. 2005, 14:45
par zeus
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

Posté : 11 juil. 2005, 14:59
par alcofribas
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?

Posté : 11 juil. 2005, 15:01
par ouckileou
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é ;)

calcul avec les dates

Posté : 11 juil. 2005, 15:06
par alcofribas
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?

Posté : 11 juil. 2005, 15:07
par ouckileou
c'est une fausse manip ce post ou c'est réellement ta réponse au mien ? :shock:

calcul avec les dates

Posté : 11 juil. 2005, 15:09
par alcofribas
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...

Posté : 11 juil. 2005, 15:11
par ouckileou
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

calcul avec les dates

Posté : 11 juil. 2005, 15:12
par alcofribas
merci, je vais essayer

Posté : 11 juil. 2005, 15:16
par ouckileou
je pense qu'une combinaison de DATEDIFF() et TIMEDIFF() devrait convenir à ce que souhaites faire

calcul avec les dates

Posté : 11 juil. 2005, 15:33
par alcofribas
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?

Posté : 11 juil. 2005, 15:35
par ouckileou
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 ?

calcul avec les dates

Posté : 11 juil. 2005, 15:38
par alcofribas
j'utilise la version 4.0.21