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 :

Datetime->add() s'applique à différentes variables au lieu d'une [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut Datetime->add() s'applique à différentes variables au lieu d'une
    Bonjour,

    j'ai une fonction censé ajouter un temps à deux dates différentes: 2020-03-02 00:00:00.0 à 2020-03-02 13:30:00.0

    Mais lorsque j'ajoute le temps à une date, il s'ajoute également à la seconde date.

    Le code:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dump("1",$debut, $fin);
    $debut->add(new \DateInterval('PT13H30M'));
    dump("2",$debut, $fin);
    $fin->add(new \DateInterval('PT17H'));
    dump("3", $debut, $fin);
    dump("d");
    dump($debut, $fin);
    exit;

    Les dumps:
    Nom : Capture.PNG
Affichages : 131
Taille : 34,8 Ko

    Ce que je souhaite: avoir deux variable DateTime, la première contenant '2020-03-02 13:30:00.0' et la seconde '2020-03-02 17:00:00.0'.

    Merci d'avance!

  2. #2
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Solution: après de multiples recherche je suis tombé sur ce post stackoverflow: https://stackoverflow.com/questions/...-change-in-one qui répond à ma question. Le problème venait de l'initialisation de mes variables qui préservait la référence du DateTime originel. Il me fallait cloner cette dernière:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $debut = clone $testedDate;

  3. #3
    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 : 48
    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,

    la solution optimale c'est d'utiliser directement DateTimeImmutable() qui lui est prévu pour : tiens un peu de lecture par ici

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/09/2019, 16h52
  2. Planning automatisé avec différentes variables
    Par loic43260 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/08/2009, 16h23
  3. définition des différentes variables
    Par Newenda dans le forum MATLAB
    Réponses: 7
    Dernier message: 06/04/2009, 15h15
  4. Réponses: 4
    Dernier message: 13/06/2007, 10h45
  5. Utiliser le même code pour différents variables
    Par vladvad dans le forum Windows Forms
    Réponses: 16
    Dernier message: 09/06/2007, 19h10

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