Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 03/08/2008, 20h14   #1
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 62
Points : 15
Points : 15
Par défaut [Dates] Différence entre 2 dates

Bonjour,
Je suis a la recherche d'un script me permettant de calculer la difference entre deux dates, je m'explique : j'ai deux dates de type
12/05/2008 09:24:18
12/05/2008 11:24:18
et j'aimerais que le script puisse me dire, il y a deux heures
Ca dois etre assez long a coder tout ca donc si je peux eviter...
Merci de me renseigner si vous connaissez un tel script.
vinczente est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 20h26   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
d'ou viennent les données ?
il serait peut etre plus simple d'obtenir cette difference dans le format d'origine plutot que de traiter ca en php.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 20h31   #3
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 62
Points : 15
Points : 15
Elles viennent de la fonction date de php.... Donc je suis oblige de les traiter en php.. enfin je crois ?
vinczente est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 20h37   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
utilise mktime() alors pour traiter tes dates.
date() sert a afficher une date formatée.

Code :
1
2
3
 
//nombre de jours entre deux timestamp :
$njours = ($timestamp2 - $timestamp1) / 86400
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 21h39   #5
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Voici une fonction pour convertir une date en timestamp
et une fonction pour obtenir la différence en seconde entre 2 dates :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//=============================================================================//
//  RETOURNE LE TIMESTAMP UNIX D'UNE DATE FORMATEE JJ/MM/AAAA HH:MM:SS
//=============================================================================//
function DateToSec($date=''){
    if(empty($date)) return 0;
    return @mktime(substr($date,11,2),substr($date,14,2),substr($date,17,2),
        substr($date,3,2),substr($date,0,2),substr($date,6,4));
}
 
//=============================================================================//
//  FONCTION POUR OBTENIR LA DIFFERENCE ENTRE 2 DATES
//=============================================================================//
function GetDiffDate($date1='',$date2=''){
    return abs(DateToSec($date1)-DateToSec($date2));
}
Ensuite, tu divises par 3600 pour obtenir les secondes en heure :
Exemple :
Code :
1
2
$diff=GetDiffDate('12/05/2008 09:24:18','12/05/2008 11:24:18');
echo round($diff/3600);
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 21h47   #6
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Citation:
Envoyé par Sub0 Voir le message
Voici une fonction pour convertir une date en timestamp
strtotime() le fait très bien ...
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2008, 22h00   #7
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Citation:
Envoyé par Bisûnûrs Voir le message
strtotime() le fait très bien ...
Cette fonction utilise le format de date américaine et tient compte du fuseau horaire, etc...
C'est peut-être plus propre, mais ça peut devenir compliqué dans certains cas, surtout pour un débutant.
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2008, 09h22   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Tiens je reprends ce message car je me suis fais piegé sur quelque chose : la difference entre deux jours n'est pas forcemment de 86400 secondes ... a cause du changement d'heure d'été.

Cela induit un décalage qui peut etre génant.
sabotage 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 04h47.


 
 
 
 
Partenaires

Hébergement Web