Bonjour, j'ai deux dates que je prend d'une BDD et que je met dans une variable php! J'aimerai faire ensuite la difference entre ces deux dates. Comment puis-je faire?
Bonjour, j'ai deux dates que je prend d'une BDD et que je met dans une variable php! J'aimerai faire ensuite la difference entre ces deux dates. Comment puis-je faire?
Le mieux c'est d'avoir leur équivalent time(), surtout si tu ne dois pas afficher la différence.
Il doit y avoir mktime() peut être pour ça, aussi.
J'espere que ça peut t'aider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2) { $timestamp = mktime(0,0,0, $mois, $jour, $an); $timestamp2 = mktime(0,0,0, $mois2, $jour2, $an2); $diff = floor(($timestamp - $timestamp2) / (3600 * 24)); return $diff; }
non mais moi j'ai déja deux variables venant d'une bdd qui contient les deux dates! ce programme ne correspondrai pas
Tu peux aussi utiliser directement les fonctions de dates et d'heures de ta BDD
La fonction time() donne la date unix, c'est une suite de chiffre genre 1215548478 qui donne la date en seconde depuis je sais pas quand c'est dans les années 70 je crois.
Donc si tu dois savoir quelle est la date la plus ancienne de deux, si tu la date unix c'est du gateau.
Perso dans ma base j'ai deux champs, un datetime() avec la date au format "humain" et un champ int avec la date au format time(). La première me sert pour l'affichage, la seconde pour les calculs et classements.
SI tes valeurs sortent de la bdd je te conseillerai d'utiliser les fonctions date bdd comme cela a été dit plus haut.
Jettes un oeil à ceci : Comment extraire des enregistrements appartenant à un intervalle de dates ?
Te fies pas à la question lol
mais kerod je n'ai pas trouvé la solution a mon probleme!
j'ai une variable contenant! $var1=2006-05-01 et une autre: $var2=2006-04-02! je veu juste la difference en nombre de jours
DATEDIFF en mysql...
Si tu n'utilises pas mysql, voici un tableau de correspondances entre les differents SGBD
http://fadace.developpez.com/sgbdcmp/fonctions/
Tu fais un
pour récupérer le jour, puis tu fais la différence entre les $jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part list($annee, $mois, $jour) = explode('-', $date);
Si comme j'ai dit trois posts plus haut tu utilises time() alors c'est du gateau.
**edit**
Encore que ça te donnera le nombre de jour au sens de 24h et pas au sens du calendrier, avec le passage d'un jour à l'autre à minuit.
euh, si tu ne fais que la difference sur le nombre de jour cela ne marchera pas...sauf si les dates appartiennent au meme mois et à la meme année !Envoyé par Kerod
Voici un petit exemple de script que j'avais crée il y a....temps
Il suffit de remplacer les valeur par tes valeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $less_day = (date('U',mktime(0,0,0,moisfutur,1,anneefutur)) - date('U',mktime(0,0,0,date("n"),date("j"),date("Y")))) / 86400;
Ce code faisait ceci : Récupère la date du jour ainsi que la date à venir, les transforme en time() et fait la différence entre les deux.
Ce qui te donne le nombre de jours au final
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager