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 :

[Dates] Incrémenter une date de X mois


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut [Dates] Incrémenter une date de X mois
    Salut à tous!

    Dernièrement, j'évoquais une préoccupation à savoir incrémenter une date de X mois.
    Le code suivant me permettait de le réaliser à merveille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $new_date = date('d-m-Y', strtotime('+ $nb_mois month'));
    //$nb_mois étant mon nombre de mois
    Cependant, cette incrémentation ne se fait qu'a partir de la date actuelle; alors question:
    Comment incrémenter cette date à partir d'une date antérieur ou supérieur à celle d'aujourd'hui ?

    J'ai beau essayer mais je vous assure que je perds mes cheveux.
    Venez-moi en aide ! Merci

  2. #2
    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
    avec mktime()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newdate = date("d/M/Y", mktime(0, 0, 0, $mois + 1, $jour, $annee));
    Ne te fais pas surprendre par contre : si tu ajoutes 1 mois au 31 janvier, tu tombes sur le 2 mars.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    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 : 41
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $new_date = date('d-m-Y', strtotime('+ $nb_mois month',TIMESTAMP_DESIRE));
    //$nb_mois étant mon nombre de mois
    suffit de lire la doc de strtortime : http://fr.php.net/manual/fr/function.strtotime.php

    Et encore une fois pas de problème de mois spéciaux comme tu peux l'avoir avec mktime
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    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
    Et encore une fois pas de problème de mois spéciaux comme tu peux l'avoir avec mktime
    Les deux écritures font exactement la même chose.
    C'est la notion même "ajouter 1 mois" qui est biaisée puisque la valeur de "1 mois" est variable.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut Incrémenter une date de X mois
    OK.
    Je l'ai testé et ça marche à merveille.

    Ne te fais pas surprendre par contre : si tu ajoutes 1 mois au 31 janvier, tu tombes sur le 2 mars.
    Mais peut-on considérer cela comme étant une erreur si on part sur la base de 1 mois = 4 semaines ?

    Mille fois merci pour votre aide !!!

  6. #6
    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
    Non ce n'est pas une erreur pour la raison invoquée au dessus.

    Je suppose que PHP calcule le timestamp du "31 Février" ce qui donne donc le 29 Février + 2 jours.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. incrémenter une date par une période de temps
    Par bilouk dans le forum VBA Access
    Réponses: 22
    Dernier message: 16/06/2023, 10h43
  2. incrémenter une date par une variable minute
    Par pchartier dans le forum Langage
    Réponses: 2
    Dernier message: 28/11/2012, 15h41
  3. [Objective-C] incrémenter une date dans une boucle
    Par babes dans le forum XCode
    Réponses: 0
    Dernier message: 11/04/2012, 15h05
  4. Réponses: 8
    Dernier message: 05/12/2008, 11h43
  5. [Dates] Incrémenter une date de X mois
    Par lavande dans le forum Langage
    Réponses: 7
    Dernier message: 21/08/2008, 20h08

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