Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1254 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Différence de dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Différence de dates

n°699086
neo-spy
Posté le 14-04-2004 à 13:26:35  profilanswer
 

JE réalise un site personnel en php et j'ai besoin de faire la différence de deux dates pour me donner le nombre de jours entre ces deux dates...
 
Je m'explique :
- La première date est le 25/12/2003
- La deuxième date est le 05/01/2004
 
-> Je voudrais réaliser une différence entre ces deux dates pour que ca me donne : 11 jours, mais je n'y suis pas parvenu.
Qq1 pourrait m'éclairer svp ?

mood
Publicité
Posté le 14-04-2004 à 13:26:35  profilanswer
 

n°699118
_pegaze_
Dux : La loi c'est moi
Posté le 14-04-2004 à 13:48:20  profilanswer
 

je ne sais pas si il existe des fonctions toute faite mais au pire tu peux utiliser la fonction mktime(), faire la soustraction des timestamp et calculer le nb de jour ...

n°699119
mrbebert
Posté le 14-04-2004 à 13:50:29  profilanswer
 

Elle viennent d'où ces dates ? D'une base de données ? [:figti]

n°699125
_pegaze_
Dux : La loi c'est moi
Posté le 14-04-2004 à 13:54:56  profilanswer
 

mrbebert a écrit :

Elle viennent d'où ces dates ? D'une base de données ? [:figti]  


c'est vrai que si ca vient d'une bdd tu peux le faire directement en sql (avec mysql en tout cas) ...

n°699135
simoes
Posté le 14-04-2004 à 14:00:32  profilanswer
 

Regarde tu cote des Timestamp!

n°699262
mrbebert
Posté le 14-04-2004 à 15:03:08  profilanswer
 

_pegaze_ a écrit :


c'est vrai que si ca vient d'une bdd tu peux le faire directement en sql (avec mysql en tout cas) ...

Je pensais surout à la fonction mysql (mais il existe l'équivalent dans les autres SGBD) TO_DAYS(). Cette fonction renvoie le numéro de jour d'une date.
Dans beaucoup de situations, cela facilite énormément les choses :ouch:  :)

n°699309
lkolrn
<comment ça marche?>
Posté le 14-04-2004 à 15:41:15  profilanswer
 

question au passage :
 
ca existe une fonction mysql TO_HOURS ??? (g cherché mais sans succès sur le net [:airforceone])
 
A moi aussi ca me faciliterait bien la tache :p


Message édité par lkolrn le 14-04-2004 à 15:41:44
n°699328
_pegaze_
Dux : La loi c'est moi
Posté le 14-04-2004 à 15:52:06  profilanswer
 

LKoLRn a écrit :

question au passage :
 
ca existe une fonction mysql TO_HOURS ??? (g cherché mais sans succès sur le net [:airforceone])
 
A moi aussi ca me faciliterait bien la tache :p


dans la doc mysql que j'ai il n'en font pas mention :/

n°699331
lkolrn
<comment ça marche?>
Posté le 14-04-2004 à 16:04:07  profilanswer
 

C un scandale! Je m'insurge!
 
Pkoi s'interesser plutot aux jours qu'aux heures :??: Non a la discrimination...
 
(kel talent [:skyx@v])


Message édité par lkolrn le 14-04-2004 à 16:05:15
n°699444
mrbebert
Posté le 14-04-2004 à 17:28:51  profilanswer
 

LKoLRn a écrit :

question au passage :
 
ca existe une fonction mysql TO_HOURS ??? (g cherché mais sans succès sur le net [:airforceone])
 
A moi aussi ca me faciliterait bien la tache :p

Tu as la fonction HOUR() qui renvoie l'heure :)
SELECT HOUR('10:05:03') renvoit 10
 
Il y a aussi SECOND(), MINUTE() et plein d'autres :sol:

mood
Publicité
Posté le 14-04-2004 à 17:28:51  profilanswer
 

n°699446
lkolrn
<comment ça marche?>
Posté le 14-04-2004 à 17:29:51  profilanswer
 

mkay...
 
mici bien [:skyx@v]

n°699566
neo-spy
Posté le 14-04-2004 à 19:59:34  profilanswer
 

Merci de votre aide.
Voilà ce que j?ai réussi à réaliser cet après midi (je n?avais pas beaucoup de temps pour le faire), ce n?est donc pas du tout optimisé. Avez vous justement quelques remarques à faire ?
 
De plus, j?ai mis quelques commentaires, est-ce que vous pouvez m?éclairer sur ces points.
 

Code :
  1. function nbre_de_jour(){
  2. $annee_debut = mysql_query("select month(anneedebut)
  3.                 from matable;
  4.        where ??? qu?est-ce qu?il faut que je mette? sachant que j?ai bien évidemment plusieurs enregistrements dans ma table. Je veux calculer le nbre de jour entre chaque date de début et de fin de chaque enregistrement et l'afficher dans un tableau.(dans un enregistrement, il a a le nom, la date de debut, la date de fin).
  5. " );
  6. $annee_fin = mysql_query("select month(anneefin)
  7.            from matable
  8. where ???" );
  9. $nbre_jour_debut = mysql_query("select dayofyear(anneedebut)
  10.             from matable
  11. where ???;" );
  12. $nbre_jour_fin = mysql_query("select dayofyear(anneefin)
  13.       from matable
  14.   where ???;" );
  15.  if ($annee_debut - $annee-fin ==0)
  16.  { $nbre = $nbre_jour_debut - $nbre_jour_fin
  17.     return $nbre;}
  18.   
  19.  elseif ( $annee_debut < $annee_fin)
  20.  { $nbre = ($annee_fin - $annee_debut)*(365 - $nbre_jour_debut) + $nbre_jour_fin;
  21.     return nbre;
  22.  }


Message édité par neo-spy le 14-04-2004 à 20:08:55
n°699587
mrbebert
Posté le 14-04-2004 à 20:37:34  profilanswer
 

C'est pas très clair tout ca :whistle:  
 
Il y a à la fois une date de fin et une date de début pour chaque enregistrement ?

n°699599
neo-spy
Posté le 14-04-2004 à 20:43:40  profilanswer
 

Je savais bien que j'étais pas clair... :)
 
Effectivement, un enregistrement dans matable contient :
nom   datedebut    datefin
 
 
Et j'aimerais affiché dans un tableau :
 
nom1       datedebut1        datefin1       nbredejour1
nom2       datedebut2        datefin2       nbredejour2
....
 
(nbredejour1 étant par ex la différence (en jour) de la datedebut1 et la datefin1)

n°699605
mrbebert
Posté le 14-04-2004 à 20:48:07  profilanswer
 

$requete = "SELECT nom, datedebut, datefin, TO_DAYS(datefin)-TO_DAYS(datedebut) AS nb_jours FROM table";
$res = mysql_query($requete);
if (! $res) {
    echo "ERREUR requete";
    exit;
}
while ($r = mysql_fetch_array($res)) {
    echo '<tr><td>' . $r['nom'] . '<td>' . $r['datedebut'] . '<td>' . $r['datefin'] . '<td>' . $r['nb_jours'];
}
 
 
Dans ta table, les colonne de date ont bien le format "date" ?? :whistle:  
(poste la structure de la table utilisée)

n°699608
neo-spy
Posté le 14-04-2004 à 20:50:50  profilanswer
 

Oui, elles sont du format 2003/10/27 par ex.
Je te remercie pour cette requete plus simple, je vais la tester.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Différence de dates

 

Sujets relatifs
Excel, VBA, ACCESS et ... les dates ....addition de dates
différence entre un char p[][] et un char * p[] ?Différence entre chaques languages de programmation ?
Manipulation de datesincrementation et dates
calcul du nombre de jours ouvrés entre 2 dates[PHP Mysql] probleme pour avoir la difference entre 2 dates.
[OpenGL] difference (newbie)[BASE DE DONNEES] difference de 2 dates sous ACCESS ??
Plus de sujets relatifs à : Différence de dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR