IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Calcul en mois entre deux dates


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Par défaut Calcul en mois entre deux dates
    Bonjour,

    La question a peut-être était déjà posé. Je cherche a récupérer le nombre de mois entre deux dates.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    En effet, ça à tendance à revenir souvent

    Exemple: http://www.developpez.net/forums/d10...issu-requetes/

    Bref, utilise DateTime pour faire ce que tu veux faire, y'a tout quoi tu veux: http://www.php.net/manual/en/datetime.diff.php

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Par défaut
    Merci beaucoup pour ta réponse

    Ça ma beaucoup aidé.

    je poste le code pour ceux qui recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        $datetime1 = new DateTime($DateDébut);
        $datetime2 = new DateTime($DateFin);
        $interval = $datetime1->diff($datetime2);
        $nbday= $interval->format('%m'); //Retourne le nombre de mois
    Encore merci pour ton aide.

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut
    Bonjour,
    je sais que le sujet est vieux mais je préfère ajouter ce qui suis afin d'éviter à d'autre de perdre du temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $start = '2008-12-31';
    $end = '2009-12-31';
     $datetime1 = new DateTime($start);
        $datetime2 = new DateTime($end);
        $interval = $datetime1->diff($datetime2);
        $nbmonth= $interval->format('%m'); //Retourne le nombre de mois
    renvoi 0 au lieu de 12

    J'ai fais pas mal de test et en fait la fonction se trompe assez souvent ?!

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    echo $interval->y te donnera 1 puisqu'il y'a exactement un an entre tes 2 dates. Et donc forcement echo $interval->m est à 0.

    Fait un var_dump($interval) en changeant les dates , tu comprendras mieux le fonctionnement de diff.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Nouveau candidat au Club
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut
    Oui merci je n'avais pas bien compris l'utilisation de la fonction.

    Pour ceux qui n'ont pas PHP 5.3 j'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function diff_en_mois_entre_deux_date($start,$end) {
    	//$date_format = YYYY-m-d
    	sscanf($start, "%4s-%2s-%2s", $annee, $mois, $jour);
    	$a1 = $annee;
    	$m1 = $mois;
    	sscanf($end, "%4s-%2s-%2s", $annee, $mois, $jour);
    	$a2 = $annee;
    	$m2 = $mois;
     
    	$dif_en_mois = ($m2-$m1)+12*($a2-$a1);
    	return $dif_en_mois ;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VxiR2] Calcul du nombre de jours par mois entre deux date
    Par trabelsi dans le forum Designer
    Réponses: 4
    Dernier message: 02/10/2017, 15h17
  2. [XL-2007] Calculer le nombre de mois entre deux dates?
    Par EmmanuelleC dans le forum Excel
    Réponses: 11
    Dernier message: 08/06/2010, 04h11
  3. [AC-2007] Calcul du nombre de jours par mois entre deux dates
    Par arouxy dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/01/2010, 08h34
  4. calcul nbre de mois entre deux dates
    Par bambino13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/07/2009, 18h06
  5. [SQL] Calcul du nombre de mois entre deux dates
    Par Lolie11 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/03/2009, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo