Mysql/php: différence de 2 dates dans une tab

Fermé
tonguim Messages postés 47 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 27 février 2015 - 8 juil. 2007 à 17:04
rama_du_sud Messages postés 6 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 novembre 2008 - 7 juin 2008 à 02:54
Bonjour, j'utilise mysql 4.0.15 et php 4.3.3 et je voudrais obtenir la difference de dates:

j'ai trouvé l'article suivant sur ce site: http://www.matthom.com/archive/2004/10/25/date-difference-in-mysql

"Prior to MySQL 4.1.1:
SELECT TO_DAYS('2004-11-08') - TO_DAYS('2004-07-26');
–> 105

As of MySQL 4.1.1:
SELECT DATEDIFF('2004-11-08','2004-07-26');
–> 105",

et ai fait cela:

j'ai 3 zones de text (text1, text2, text3) sur un formulaire html; text1 contient la valeur de date1 et text2 celle de date2; je voudrais afficher dans text3 la difference de date1 et date2. J'ai essayé les 2 possibilités suivantes, en vain:

$php_text1=$_POST['text1'];
$php_text2=$_POST['text2'];

1-insert into myTable (date1, date2, date3) values ('$php_text1', '$php_text2', 'TO_DAYS($php_text1)-TODAYS($php_text2)');

2-insert into myTable (date1, date2, date3) values ('$php_text1', '$php_text2', 'datediff($php_tex2,$php_text1)');

Date1 et date2 sont des champs de type date dans la table; date3 est de type float.

Comment puis je obtenir la difference de 2 dates? Merci.

4 réponses

rama_du_sud Messages postés 6 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 novembre 2008 12
7 juin 2008 à 02:54
Voir le code PHP à la question "différence entre deux date/time"

Cela répond parfaitement à ton problème.

Rama du Sud
3
Pour obtenir la difference ntre deux dates:

tu transformes $date1 en timestamp unix
$date2 en timestamp unix

et par la différence des deux tu obtiens cela en secondes

Vas voir sur google comment obtenir le timestamp d'une date
0
merci Alain42 pour ta réponse; voici la réponse à mon problème:
$sql = "INSERT INTO myTable (date1, date2, date3) ".
"VALUES ('". $php_text1 ."', '". $php_text2 ."', (TO_DAYS(". $php_tex2 .") - TO_DAYS(". $php_text1 ."));
0
dans une table Mysql j'ai un champ date. je veux afficher les enregistrement de cette table avec une condition sur date.
exemple afficher les enregistrements dont la date est comprise entre "2008-03-08" et "2008-03-18".
Merci de m'écrire le code php qui permet d'afficher le résultat.
0