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 et manipulation de date


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut DateTime et manipulation de date
    Bonjour,

    Mon problème est le suivant, je voudrais pouvoir manipuler à souhait une date qui est créée via DateTime.

    La fonction de création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getDateNow() {
      $date = new DateTime();
      return $date;
    }
    Et le code de modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $date = $this->getDateNow();
    $time = clone $date;
     
    if ($date->format("i")%$nbMinutes == 0)
    {
       $time->modify('-'.$nbMinutes.' minutes');
    }
    var_dump($time);
    return $time;
    Le but de l'opération serait de mettre les secondes de $time toujours égales à 0. Et que suivant le résultat de $date->format("i")%nbMinutes faire différentes choses.

    $nbMinutes s'obtient avec une requête à la base de données, c'est un entier.

    Je galère encore un peu pour la gestion des objets et la manipulation de ceux-ci.

    Avez vous une idée ?

    Merci d'avance !

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu nous dire plutôt le comportement que tu cherches à obtenir ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    En gros en je veux faire de l'alarming via des courbes de profiles.

    Les courbes de profiles sont les fameuses informations que je veux récupérer. Je veux récupérer 3 valeurs (pour le profil) qui sont à semaine -3, semaine -2, semaine -1 pour le même jour et la même heure à l'instant T.

    Par ex :
    Ajd : valeur = 12 pour date = 2015-04-21 14:15:00
    s-1 : valeur = 13 pour date = 2015-04-14 14:15:00
    s-2 : valeur = 12 pour date = 2015-04-07 14:14:00
    ...

    Pour conclure, je voudrais pouvoir manipuler l'objet date pour l'adapter à mes besoins.

    J'ai fais ce code mais ce n'est pas en objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ($i = 3 ; $i > 0 ; $i--) {
          $numSem = date("W") - $i;
          $jourHeure = date("Y-m-d H:i:s",strtotime($tabDate[1]." - ".($i*7)." days"));
          $dateAnte = "S".$numSem."_A".date("Y");
          $semainesPassees[] = [$dateAnte,$jourHeure];
    }

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Certes mais pour moi d'une part ton besoin est très flou et d'autre part ton point de blocage n'est pas plus limpide.

    Tu veux semaine - 1, semaine - 2 et semaine - 3 de la date du jour sans les secondes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Des informations sont rentrées automatiquement dans ma base toutes les 5 minutes pour certains équipements et toutes les 15 pour d'autres.

    2015-02-12 12:00:00
    2015-02-12 12:05:00
    2015-02-12 12:10:00
    2015-02-12 12:15:00
    2015-02-12 12:20:00
    (idem pour 15minutes).

    J'ai besoin de récupérer les valeurs possédant les dates-heure ci-dessus mais aussi les valeurs ayant les dates :
    2015-02-12 12:05:00 -1 semaine -2 semaine et -3 semaine
    2015-02-12 12:10:00 -1 semaine -2 semaine et -3 semaine
    2015-02-12 12:15:00 -1 semaine -2 semaine et -3 semaine
    2015-02-12 12:20:00 -1 semaine -2 semaine et -3 semaine
    afin de comparé la valeur de la semaine courante avec la moyenne des valeurs sur les 3 semaines dernières.

    Il faut que les secondes soient à 0 pour pouvoir exploiter la base.

    Enfin comme l'écriture des données en base prend un peu de temps, j'affiche à l'instant T les valeurs à T-5 minutes. Quelques minutes plus tard (entre 1 et 5, une fois que les infos T sont en base) je refresh la page afin d'afficher les nouvelles valeurs. C'est pour cela que j'utilise un modulo dans le premier post.

    J'espère avoir été assez clair.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    T-5 minutes ou T-15 minutes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Peu importe, dans un premier temps pour 5 minutes mais à terme ça sera dans une variable du coup le traitement sera le même dans les deux cas

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Donc s'il est 12h06 tu veux 2015-04-22 12:05:00, 2015-04-15 12:05:00 et 2015-04-08 12:05:00 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    J'ai pas trop compris ton besoin également, mais en tout cas pour setter les secondes à 0 et revenir 3 semaines en arrière, tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $dateTime = new DateTime();
    $dateTime->setTime(date('H'),date('i'),0);
     
    for ($i = 1; $i <= 3; $i++) 
    {
    	$dateTime->modify('last week');
    	var_dump($dateTime);
    }
    A titre informatif, sache qu'il existe une superbe classe en PHP la classe Carbon qui te simplifie grandement la vie pour tout ce qui est manipulation de date
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    C'est ça Sabotage.

    @Spartacusply : Super ça à l'air pas mal, je vais tester ça !

    Merci !

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

Discussions similaires

  1. Manipulation de dates SQL avec la classe DateTime
    Par Ben Gates dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 3
    Dernier message: 08/03/2013, 17h04
  2. [JDBC] manipulation des dates/heures en Java
    Par kurkLord dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2004, 12h49
  3. Manipulations des Dates
    Par kurtc dans le forum Langage SQL
    Réponses: 11
    Dernier message: 13/04/2004, 14h39
  4. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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