Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/07/2011, 13h13   #1
Invité de passage
 
Inscription : mars 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 31
Points : 4
Points : 4
Par défaut Calcul de date en PHP

Bonjour,
voila, je possède 2 variables PHP contenant 2 dates, une de début d'action et une de fin d'action. je voudrais savoir combien de temps a durée cet action. Le problème est que lorsque je fait un $DateFin - $DateDebut, j'obtiens une date nouvelle date de 1970, hors ce que j'aurais besoin de savoir c'est le nombre de jours et/ou d'heure qu'a duré l'action.
Comment puis-je connaitre le temps passé sur cette action?
Merci d'avance!
zimeau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 13h23   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 775
Points : 2 335
Points : 2 335
Bonjour,

Tu dois avoir un souci dans la déclaration de tes dates, peux-tu nous montrer le code ?
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 13h33   #3
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
hello,

quels sont les types de tes variables date ?
http://www.php.net/manual/fr/datetime.diff.php

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 14h18   #4
Invité de passage
 
Inscription : mars 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 31
Points : 4
Points : 4
je récupère mes dates dans ma base mssql d'un camp datetime avec une requête "CONVERT(VARCHAR, Date, 120)"
j'arrive à changer leurs types avec strtotime si besoin.
zimeau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 14h42   #5
Invité de passage
 
Inscription : mars 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 31
Points : 4
Points : 4
Citation:
Envoyé par kaymak Voir le message
hello,

quels sont les types de tes variables date ?
http://www.php.net/manual/fr/datetime.diff.php

a+
Fatal error: Call to a member function diff() on a non-object
je suis en PHP/5.3.4
zimeau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 14h45   #6
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
$duree = round((strtotime($date_fin) - strtotime($date_deb))/(60*60*24));
Nombre de jours entre chaque.
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 15h06   #7
Invité de passage
 
Inscription : mars 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 31
Points : 4
Points : 4
Citation:
Envoyé par gwharl Voir le message
Code :
$duree = round((strtotime($date_fin) - strtotime($date_deb))/(60*60*24));
Nombre de jours entre chaque.
j'essaye pour ces dates : 2011-07-26 15:45:32 ---> 2011-07-29 12:45:15 j'obtiens 0.
zimeau est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/07/2011, 15h09   #8
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Normal, ce ne sont pas des dates mais des date time.
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 15h21   #9
Invité de passage
 
Inscription : mars 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 31
Points : 4
Points : 4
Citation:
Envoyé par gwharl Voir le message
Normal, ce ne sont pas des dates mais des date time.
comment le convertir en jour heure:minute:seconde?
j'ai progresser avec ça :
Code :
1
2
3
4
$date1 = strtotime($DateDebutProd);
$date2 = strtotime($DateFinProd);
$date3 = $date2 - $date1;
echo $date1." ---> ".$date2." = ".date("d", $date3)." jours";
mais c'est incorrecte, car même si entre le 26 et le 29 il y a 3 jours, ce n'est pas le cas entre le 26 à 15h et le 29 à 12h (2 jours et 21h)
zimeau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 15h22   #10
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Citation:
Envoyé par zimeau Voir le message
Fatal error: Call to a member function diff() on a non-object
je suis en PHP/5.3.4
ché pas, RTFM ?

L'extension est fournie en standard.
http://www.php.net/manual/fr/datetime.installation.php

J'ai un coup de folie je re poste un lie posté plus tôt dans la journée :
http://www.php.net/manual/fr/langref.php

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 06h32   #11
Membre confirmé
 
Avatar de Korri
 
Homme Hugo Vacher
Étudiant
Inscription : mai 2008
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Hugo Vacher
Âge : 23
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2008
Messages : 158
Points : 224
Points : 224
Citation:
Envoyé par zimeau Voir le message
comment le convertir en jour heure:minute:seconde?
j'ai progresser avec ça :
$date1 = strtotime($DateDebutProd);
$date2 = strtotime($DateFinProd);
$date3 = $date2 - $date1;
echo $date1." ---> ".$date2." = ".date("d", $date3)." jours";
mais c'est incorecte, car meme si entre le 26 et le 29 il y a 3 jours, ce n'est pas le cas entre le 26 à 15h et le 29 à 12h (2 jours et 21h)
Tu est sur la bonne piste, mais $date3 contient un nombre de seconde, tu ne peut pas l 'utiliser avec la fonction date().

Le plus simple est de calculer toi même (nombre de seconde / 60 = nombre de minutes, nombre de minutes / 60 = nombre d'heures, etc...)

PS: pense à la balise [CODE] !
Korri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 19h07   #12
Membre du Club
 
Avatar de alain78
 
Homme Alain
Développeur informatique
Inscription : mai 2008
Messages : 117
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 59
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : mai 2008
Messages : 117
Points : 55
Points : 55
Bonjour

Code :
1
2
 
echo $date1." ---> ".$date2." = ".date("d", $date3)." jours";
Je pense qu'il faudrait essayer :
Code :
1
2
 
echo $date1." ---> ".$date2." = ".date("d h:i", $date3)." jours";
__________________
Donnes un poisson à un homme tu le nourris un jour, apprends lui à pécher tu le nourris toute sa vie.
alain78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h13.


 
 
 
 
Partenaires

Hébergement Web