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] ajouter/enlever heures date


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Décembre 2004
    Messages : 166
    Par défaut [Dates] ajouter/enlever heures date
    Bonjour,

    J'aimerai savoir si il existe un fonction permettant d'ajouter ou enlever des heures à une date données du format (dd/mm/aaaa hh:mm:ss).

    Exemple :
    J'ai une date 09/11/2007 09:00:00 et je lui ajoutes 2h et j'obtiens 09/11/2007 11:00:00
    Je sais que ça peut paraitre bête pour certains mais je suis un gros nul en php.

    Je vous remercie d'avance

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    Ta date sort d'où ? Tu la récupères à partir d'une base de données ? D'une fonction PHP ?

  3. #3
    Membre confirmé
    Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Décembre 2004
    Messages : 166
    Par défaut
    Ma date je la récupère à partir d'une base de données Access et je veux la comparer à la date systeme.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    T'as regardé de ce côté-là ? :
    http://www.webcheatsheet.com/tags/search.php?q=date

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Par défaut
    Bon alors je n'ai pas trop compris comment tu avais cette date, si la date que tu as est une chaine, alors on va devoir convertir la chaine pour en séparer les composants, on commence au point n°1, si tu as déjà les différentes valeurs, on commence au n°2 pour en faire un timestamp et si c'est un timestamp bah, va direct au n°3 c'est très simple.

    1) Convertir la chaine en tableau.

    Bon et bien pour faire celà il va falloir faire 2 "explode" sur ta chaine $date_acces récupérée précedemment je ne sais comment par toi, il y a bien d'aurtes moyens mais j'aime bien les explodes donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //on segmente la chaine en 2 :le jour et l'heure
    $date = explode(" ",$date_acces,2); //on obtient donc un array à 2 lignes
     
    //ensuite on re-segmente les 2 parties de la date.
    $date_jour = explode("/",$date[0],3);
    $date_heure = explode(":",$date[1],3);

    2) Faire des composants un timestamp unix.

    Maintenant va falloir transformer ces différents composants de date en timestamp unix, pour ça on va utiliser la fonction mktime.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //on convertit les composants en timestamp :
    $timestamp = mktime($date_heure[0],$date_heure[1],$date_heure[2],$date_jour[1],$date_jour[0],$date_jour[2]);

    3) changer ce qu'on veut dans le timestamp et on chope les données ^^.

    Alors pourquoi j'ai fait un timestamp ? Très simple, grâce à ça tu peux rajouter par exemple 2648624 secondes et ça te le convertira automatiquement en jour, mois etc, etc...
    (Et puis aussi parce que j'adore les timestamp aussi )
    Le timestamp est en secondes, donc pour rajouter 5jours par exemple il te faudra ecrire "$timestamp += 5*24*60*60 ;"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $timestamp += $nbr_secondes_que_tu_veux_rajouter; //tu actualise
     
    //ensuite on prend ce qui nous interesse et on stock le tout dans une chaine :)
     
    $nouvelle_date = strftime("%d/%m/%Y %H:%M:%S",$timestamp);
     
    //et voilà ta jolie date est stockée dans $nouvelle_date :king:
    Info : à la place de strftime() tu aurais aussi bien pu utiliser date().

    Bon je crois que j'ai été assez explicite. J'espère que tu as compris.
    En esperant t'avoir aider

  6. #6
    Membre confirmé
    Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Décembre 2004
    Messages : 166
    Par défaut
    Merci, j'avais fait comme ça en fait en créant des des fonctions pour trier mon expressions.

    Merci pour ton coup de main

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

Discussions similaires

  1. Ajouter une heure à un type date
    Par SuperPat dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/07/2008, 09h35
  2. Réponses: 4
    Dernier message: 17/04/2008, 16h51
  3. Réponses: 2
    Dernier message: 21/03/2007, 16h06
  4. Ajout d'heure a une date, probleme de 24heures
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/07/2006, 12h01
  5. [VBA-E]ajouter 2 heure à une date récupéré d'une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2006, 08h55

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