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 :

Comparaison date et heure


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut Comparaison date et heure
    Bonjour,

    je gère un système de cache et je souhaite afficher à partir de combien de temps le cache va être renouvelé. Mais je souhaiterai avec le temps en nombre de mois,jours, heures et minutes mais je n'arrive pas à gérer la notion de date.

    Voici mes variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $date_fichier=date ("d/m/Y H:i:s", filemtime($fichierCache));
    $date_comp=date ("d/m/Y H:i:s", time()-(31104000));
    Comme vous le voyez je met une durée d'un an pour l'exemple.
    Donc je souhaite afficher un message comme celui-ci :
    Le cache va être renouvelé dans x mois (s'il y a lieu de le mettre) x jours (s'il y a lieu de le mettre) et x heures.

    Voilà j'ai vraiment beaucoup de mal à gérer la notion de date donc merci à toute personne pouvant m'aider.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Tu ne peux pas savoir comme ça quand est-ce que le cache va être renouveler

    Tout dépend à combien de temps tu l'as défini dans le cache->set

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Mais je souhaiterai avec le temps en nombre de mois,jours, heures et minutes mais je n'arrive pas à gérer la notion de date.
    date() donne une date, pas un nombre de jours.

    s'il te faut un résultat approché, il s'agit juste de savoir combien heures,minutes,secondes il y a dans x secondes, puis combien de jours il y a dans y heures ... bref le genre de problème qu'on traite a l'école primaire.

    s'il te faut le resultat exact prenant en compte le nombre de jours de chaque mois par exemple, ca devient plus compliqué mais on avait déjà bossé sur quelque chose comme ca sur ce forum, ca doit pouvoir se retrouver.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut en fait
    ce qu'il me manque c'est la comparaison entre la date du jour et la date d'expiration (que tu m'a indiqué) exprimé en année (si besoin) en mois etc.
    Car actuellement j'arrive juste à avoir le nombre de jour et non mois etc.

    voici ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function calcule_nbre_jours ($date1, $date2) {
     
    $arr_date1 = explode("/", $date1);
    $time_a_comparer1 = mktime(0, 0, 0, $arr_date1[1], $arr_date1[0], $arr_date1[2]);
     
    $arr_date2 = explode("/", $date2);
    $time_a_comparer2 = mktime(0, 0, 0, $arr_date2[1], $arr_date2[0], $arr_date2[2]);
     
    $difference = $time_a_comparer1 - $time_a_comparer2;
    $retour = 'Dans : ';
     
    $nbre_jour = intval($difference / 86400);
    $retour .= $nbre_jour.' jours';
     
    return $retour;
    }
     
    $date_jour=date("d/m/Y H:i:s",time());
    $date_ou_expire=date ("d/m/Y H:i:s", (filemtime($fichierCache)+DUREE_CACHE));
    $date_genere=date ("d/m/Y H:i:s", filemtime($fichierCache));
    echo calcule_nbre_jours($date_jour,$date_ou_expire);
     
    echo "<center><font color=white>Le cache de cette page va expiré le ".date ("d/m/Y H:i:s", (filemtime($fichierCache)+DUREE_CACHE))." et elle a été généré le ".$date_genere."</font></center><BR />";
    ceci me donne : Le cache de cette page va expiré le 29/08/2010 22:15:47 et elle a été généré le 03/09/2009 22:15:47

    voilà

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 714
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 714
    Par défaut
    dans la FAQ il y a un exemple de calcul pour connaitre le nombre de jour et de semaine, tu as juste besoin d'adapter pour avoir le nombre de mois :
    http://php.developpez.com/faq/?page=...ate_difference

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/06/2014, 11h25
  2. Comparaison des dates et heures
    Par IcedLand dans le forum Sql Developer
    Réponses: 1
    Dernier message: 21/09/2007, 11h04
  3. [Oracle 9i] Date avec Heure + comparaison
    Par MinsK dans le forum Oracle
    Réponses: 8
    Dernier message: 21/11/2005, 13h18
  4. [DEBUTANT]Comparaison sur date et heure
    Par tripper.dim dans le forum Oracle
    Réponses: 15
    Dernier message: 15/11/2005, 19h25

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