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 :

Php affichage décimal entre deux dates


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut Php affichage décimal entre deux dates
    Bonjour à tous,

    Voila j'ai un problème de débutant c'est très simple je fais le calcul entre deux dates pour avoir le nombre d'années.
    Tout marche parfaitement sauf que j'aimerais qu'il me retourne la véritable valeur et pas l'arrondi. Je m'explique au lieu de me retourner 10,3 ans il me retourne 10 avez vous une idée ? Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $datetest = '2007-07-27';
    $datedujour = date("Y-m-d");
    $Age  = number_format(abs($datedujour - $datetest ), 2, ',', '');
    echo $Age; // il affiche 10,00 mais si je fais dans excel il me dit 10,3etc..
    Merci d'avance à tous

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... tu fais la soustraction de 2 dates sous forme de chaines ? et c'est le fait que ça affiche 10 qui te surprend ?

    Je ne sais pas ce que tu penses que PHP allait faire, mais ce qu'il fait en vrai, c'est une conversion de tes chaines en nombre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "2007-07-27" => 2007
    "2017-11-16" => 2017
    2007 - 2017 => -10
    Si tu veux faire la différence entre 2 dates, utilise plutôt date_diff. Tu as même un paramètre pour forcer l'intervalle à être positif, ce qui ferait l'équivalent de ton appel à abs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $datetest = date_create('2007-07-27');
    $datedujour = date_create();
    $interval = date_diff($datetest , $datedujour, true );
    echo $interval->format('%y ans');
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Merci oui les dates c'est mon némésis je vais voir avec tes indications merci beaucoup

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Pour ceux qui veulent une indication avec des décimales j'ai opté pour cette solution si ça peut aider certain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $date1=date_create("2007-07-27");    
     
    $date2=date_create();    
     
    $diff=date_diff($date1,$date2);    
     
     echo $diff->days / 365;  // il retourne bien 10ans mais en mode 10.315... etc

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

Discussions similaires

  1. [MySQL] affichage dont Date du jour comprise entre deux dates
    Par Hamnatouch dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/06/2011, 11h24
  2. comparaison entre deux dates en php
    Par brahda dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2011, 12h04
  3. [MySQL] PHP/MySQL réservation - disponibilité de chambres entre deux dates
    Par rdrd8 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/11/2008, 20h51
  4. [VBA] Test entre deux dates + affichages
    Par titocv723 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2008, 15h26

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