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 :

Comment ajouter un nombre d'années à une variable date ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Comment ajouter un nombre d'années à une variable date ?
    Comment ajouter un nombre d'années (sauvegardé dans une variable) à une variable date, et puis afficher la nouvelle date ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dateNouvelle = date('d-m-Y', strtotime('+'.$nombreAnnees.' year', $dateDepartTimestamp ));
    echo $dateNouvelle;
    Message d'erreur
    Catchable fatal error: Object of class DateTime could not be converted to string in ...

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Si tu as php >= 5.3, c'est ici.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Points : 132
    Points
    132
    Par défaut
    Bonjour,

    C'est plus simple avec add() comme l'a dit ABCIWEB.

    Sinon, as-tu essayé un strtotime() intermédiaire? Comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dateNouvelle = strtotime(date('d-m-Y', strtotime('+'.$nombreAnnees.' year', $dateDepartTimestamp )));
    $dateNouvelle = date("Y-m-d",$dateNouvelle);
    echo $dateNouvelle;

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    avec PHP 5.5+ cela donne quelque chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo (new DateTime())->modify('+5 years')->format('d-m-Y');

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut En fait mon code ne fonctionne pas !
    Le problème est d'utiliser les variables à travers les fonctions.
    Je n'y arrive pas.

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    donne le code de la fonction complète

    qu'affiche $dateDepartTimestamp

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dateDepart = '01-04-2013';
    $dateDepartTimestamp = strtotime($dateDepart);

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    comme ça (version longue) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $dateDepart = '01-04-2013';
    $date       = DateTime::createFromFormat('d-m-Y', $dateDepart);
    $nb_years   = 5;
    $date->modify("+{$nb_years} years");
    echo $date->format('d-m-Y');    // 01-04-2018

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Non !
    J'obtiens toujours la même erreur
    Catchable fatal error: Object of class DateTime could not be converted to string in ...
    Que c'est dur !

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Avec ton nommage des variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $dateDepart = '01-04-2013';
    $dateDepartTimestamp = DateTime::createFromFormat('d-m-Y', $dateDepart);
    $nb_years   = 5;
    $dateDepartTimestamp->modify("+{$nb_years} years");
    echo $dateDepartTimestamp->format('d-m-Y');    // 01-04-2018
    tu ne dois surtout pas oublier le ->format('d-m-Y') pour éviter ton erreur

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Toujours pas !
    Toujours l'erreur fatale !
    Catchable fatal error: Object of class DateTime could not be converted to string in

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    est ce que tu peux poster le script en entier et la fin du message d'erreur stp (surtout la ligne qui pose problème), merci

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut OK C'est résolu !
    Citation Envoyé par rawsrc Voir le message
    est ce que tu peux poster le script en entier et la fin du message d'erreur stp (surtout la ligne qui pose problème), merci
    J'ai mis exactement votre code et ça a marché.
    J'avais une erreur quelque part après votre code ; et puisque je n'ai pas d'éditeur php, je n'arrivais pas à trouver ; donc, j'ai re-codé et bingo !
    Merci mille fois Grand Seigneur Codeur !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/03/2010, 21h24
  2. Réponses: 2
    Dernier message: 10/09/2007, 16h43
  3. PB comment ajouter la clé etrangere dans une table
    Par kundun dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/11/2006, 15h48
  4. Réponses: 3
    Dernier message: 05/11/2006, 11h42
  5. Réponses: 2
    Dernier message: 03/01/2006, 14h58

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