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 incrémenter l'heure dans une variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 209
    Par défaut Comment incrémenter l'heure dans une variable
    Bonjour

    Je m'excuse si ma question semble être bête.
    Je sais faire ceci


    Le problème est que ma variable contient la date et l'heure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stage_start="2017-09-01 12:00:21"
    Plus concretement mon rpblème est le suivant.

    Je rempli un tableau et je donne comme index, la variable $stage_start

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sta[$stage_start] = '<li><a '.$style.' href="[[~'.$child->get('id').']]">['.$child->get('id').']'.$child->get('pagetitle').' <em>('.$stage_canton.')</em></a> ('.$stage_start.' - '.$stage_end.')</li>';
    Il se trouve que si deux stages qui comment le même jour et à la même heure, on ne les retrovera pas dans $sta, car le deuxième écrasera le premier.

    Donc l'idée est d'utiliser array_key_exists
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(array_key_exists($stage_start))
    						{
     
    						}
    						else
    						{
    							// Display result
    							$sta[$stage_start] = '<li><a '.$style.' href="[[~'.$child->get('id').']]">'.$child->get('pagetitle').' <em>('.$stage_canton.')</em></a> ('.$stage_start.' - '.$stage_end.')</li>';
    							//$sta[$stage_start] = '<li><a href="[[~'.$child->get('id').']]">'.$child->get('pagetitle').' ('.$stage_canton.')</a>, <em>'.date("d M Y",strtotime($stage_start)).'</em></li>';
    						}

    Si la clé existe, j'aimerais pourvoir changer la valeur de
    Citation Envoyé par PHP
    $stage_start="2017-09-01 12:00:21"
    d'une seconde
    Citation Envoyé par PHP
    $stage_start="2017-09-01 12:00:22"
    Comment pourrais incrémenter ceci alors qu'en fait c'est du texte?

    En écrivant cette derniere phrase, je me demande s'il existe une fonction qui pourrait me convertir
    "2017-09-01 12:00:20"
    en
    20170901120021
    Il me sera plus facile d'incrémenter ce nombre et je pourrais aussi l'utiliser comme index?

    Qu'en pensez-vous?

    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
    Ce que tu veux faire ce n'est pas robuste.
    Il faut que tes stages aient un identifiant unique, c'est la base d'une structure de données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 209
    Par défaut
    Bonjour,
    Oui elles ont un identifiant unique.
    Mais plus bas j'utilise la fonction ksort() pour classe les stages. Si j'utilisais l'identifiant unique, les stages ne seraient pas arrangés par l'heure de départ.

  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
    Tu peux utiliser array_multisort() pour classer un tableau par une données du sous-niveau.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 209
    Par défaut
    D'accord merci.
    Je vais regarder ceci.
    J'étais en train de regarder comment convertir une heure en timestamp car en réalité l'heure n'est tellement une chaîne de caractère vu qu'elle est extraite de à base de donnée. Ce n'est pas la même table que celle des stages. C'est peu particulier...

  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
    Pourquoi tu ne fais pas ton classement directement dans la requête ?

    une heure en timestamp car en réalité l'heure n'est tellement une chaîne de caractère vu qu'elle est extraite de à base de donnée.
    un timestamp c'est une date pas une heure.
    Il n'y a pas de conversion de dates depuis les bases de données vers PHP, c'est donc bien une chaine que tu obtiens.
    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. Comment stocker requete dans une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/11/2006, 09h00
  2. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 16h56
  3. Réponses: 2
    Dernier message: 19/01/2006, 22h59
  4. Réponses: 22
    Dernier message: 09/12/2005, 22h27
  5. Réponses: 4
    Dernier message: 14/09/2005, 18h23

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