FONCTION DATEDIFF : CALCULE LE TEMPS ENTRE DEUX DATES
cs_Loser
Messages postés33Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 7 novembre 2006
-
16 mai 2004 à 08:29
Rahmi Ali -
11 juin 2015 à 02:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
maxelpiratos
Messages postés43Date d'inscriptionlundi 14 février 2005StatutMembreDernière intervention30 janvier 2006 27 juin 2005 à 22:19
bonjour,
la fonction dat_diff marche bien mais j essai de la coupler a ma base de donnee pour entrer les variables. seulement, le format de la bdd est yyyy-mm-dd et la rien ne va plus!!! :)
est ce que tu connais une solution? je ne peux pas utiliser une requete car je ne veux rien recuperer mais juste me donner le nombre de jour entre les deux dates.
merci d avance!
Nifhell
Messages postés48Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention23 avril 2006 1 avril 2005 à 17:19
Pas mal mais tu devrais tenir compte du passage de l'heure d'été à l'heure d'hiver!! si tu fais:
date_diff("21/03/2005 00h00","28/03/2005 00h00")
ton script comptabilise 1 heure de moins, car dans cette semaine on passe de l'heure d'hiver à l'heure d'été!!
pour éviter ça il faut metter l'option is_dst à 0 dans la fonction mktime:
mktime($P2[3],$P2[4],$P2[5],$P2[1],$P2[0],$P2[2],0)
On pourrait la mettre à 1 mais elle a parfois un comportement bizarre, le tout c'est d'avoir la meme base de calcul lorsque l'on compare deux dates (heure d'été ou heure d'hiver)!
[Source : http://www.nexen.net/docs/php/annotee/function.mktime.php]
Ce qui est dommage avec cette source c'est que ça ne marchera pas pour les dates antérieures au 01/01/1970. J'ai fait quelque chose qui donne le nombre de jours entre 2 dates quelles qu'elles soient. Faut que je pense à poster ça...
cs_Loser
Messages postés33Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 7 novembre 2006 16 mai 2004 à 08:29
Si on a stocker ses dates dans une bdd mysql on peut faire la requete suivant
SELECT ma_table. * , (TO_DAYS( date_expires ) - TO_DAYS( date_ajout )) AS difference
FROM `ma_table` ORDER BY difference
où :
date_expire : date d'expiration sois elle est contenu dans la bdd, sois dans un variable externe
11 juin 2015 à 02:31
grand merci
Modifié par moi le 2/11/2014 à 10:07
27 sept. 2010 à 12:10
plutot que de ne passer que par les formats: date custom => time
en faisant simplement :
return round((strtotime($date2) - strtotime($date1))/$mode);
qui tiendra compte des fuseaux horaires si $date1 et $date2 sont au format DATE_ATOM.
28 juin 2005 à 07:34
27 juin 2005 à 22:19
la fonction dat_diff marche bien mais j essai de la coupler a ma base de donnee pour entrer les variables. seulement, le format de la bdd est yyyy-mm-dd et la rien ne va plus!!! :)
est ce que tu connais une solution? je ne peux pas utiliser une requete car je ne veux rien recuperer mais juste me donner le nombre de jour entre les deux dates.
merci d avance!
1 avril 2005 à 17:19
date_diff("21/03/2005 00h00","28/03/2005 00h00")
ton script comptabilise 1 heure de moins, car dans cette semaine on passe de l'heure d'hiver à l'heure d'été!!
pour éviter ça il faut metter l'option is_dst à 0 dans la fonction mktime:
mktime($P2[3],$P2[4],$P2[5],$P2[1],$P2[0],$P2[2],0)
On pourrait la mettre à 1 mais elle a parfois un comportement bizarre, le tout c'est d'avoir la meme base de calcul lorsque l'on compare deux dates (heure d'été ou heure d'hiver)!
[Source : http://www.nexen.net/docs/php/annotee/function.mktime.php]
1 juin 2004 à 14:49
16 mai 2004 à 08:29
SELECT ma_table. * , (TO_DAYS( date_expires ) - TO_DAYS( date_ajout )) AS difference
FROM `ma_table` ORDER BY difference
où :
date_expire : date d'expiration sois elle est contenu dans la bdd, sois dans un variable externe
date_ajout : date ajout de la news par exemple
Et bien sur format des dates : yyyy-mm-dd