Chronometre intervalle de temps
L’équivalent en C# c’est ici :: Calculer un intervalle de temps en C#
Pour calculer la différence de temps entre deux dates en php il suffit d’utiliser la méthode diff et deux datetime.
La méthode diff nous renverra un objet dateinterval qui est très facilement manipulable pour obtenir des durées.
!!! Attention le calcul du nombre de jour total dans PHP 5.3.0 BUG. Le format ‘%a’ vous renverra tout le temps 6015.
Exemple:
Calcul du temps écoulé (pour calculer le temps d’exécution d’un programme en seconde).
<?php
$debut = new DateTime('now');
// Execution de code
$fin = new DateTime('now');
$interval = $debut->diff($fin);
echo $interval->format('Il s\'est écoulé %R%S sec');
//-> Il s'est écoulé +02 sec
?>
Exemple:
Calculer le nombre de jours entre deux dates.
<?php
$debut = new DateTime('2009-01-02');
// Execution de code
$fin = new DateTime('2009-01-05');
$interval = $debut->diff($fin);
echo $interval->format('Il s\'est écoulé %R%d jours');
//-> Il s est écoulé +3 jours
?>
Exemple:
L’exemple suivant va vous permettre de tester si le nombre de jour est supérieur ou égal à 2 tout en gérant le bug du %a (Calcul du nombre de jour total).
if($interval->d >= 2 || $interval->m > 0 || $interval->y > 0 ){
echo ‘intervalle de temps supérieur ou égale à 2 jours’;
}else{
echo ‘intervalle de temps inférieur à 2 jours’;
}
Et pour en savoir plus il y a le manuel php http://php.net/manual/fr/datetime.diff.php
Et si vous avez envie d’aller plus loin avec php, je vous invite à lire :
[Programmation] Comment écrire l’instruction switch en php et d’autres langages
Voilà 10 ans que je n'avais pas écrit un petit texte pour souhaiter un joyeux… Read More
Cela faisait un petit moment que je n'avais pas créé de billets sur ce blog.… Read More
Explorez l'importance des user stories dans la méthode Agile à travers une vidéo humoristique qui… Read More
Parce que, contrairement à ce que l'on pourrait penser ce soir qu'il pleut des cordes,… Read More
Un peu d’humour en attendant le résultat des élections présidentielles françaises. Read More
Si vous n'avez pas accès à l'interface graphique de votre Linux, vous pouvez modifier l'horloge… Read More
View Comments
besoin de verifier:)
Bonjour,
Si vous avez besoin d'éclaircissement sur ce que j'ai écris ou si vous n'êtes pas d'accord n'hésitez pas à m'en dire un peu plus. Je vous répondrais avec plaisir.
Ok pour l'affichage de ce résultat, mais il semble qu'il n'y ait pas vraiment moyen de l'exploiter.
En effet, je n'arrive pas à faire de comparaison avec...
Bonjour Kai-Ho,
quel type de comparaison cherchez vous à faire?
Quelque chose du genre
if ($interval->format(%d) >= 2)
pour savoir si le nombre de jours est supérieur ou égal à 2, par exemple.
Pour cela il te suffit de faire :
if($interval->d >= 2 ){
echo 'intervalle de temps supérieur ou égale à 2 jours';
}else{
echo 'intervalle de temps inférieur à 2 jours';
}
super, merci beaucoup, j'essaye ça de suite !
Attention, vu que %a ne fonctionne pas si ton intervalle de temps est supérieur a 1 mois il faut que tu rajoutes la condition ' || $interval->m > 0 || $interval->y > 0' dans ton if.
Exemple:
if($interval->d >= 2 || $interval->m > 0 || $interval->y > 0 ){
echo ‘intervalle de temps supérieur ou égale à 2 jours’;
}else{
echo ‘intervalle de temps inférieur à 2 jours’;
}
Bonjour,
moi je veux savoir comment on calcule le temps écoulé après avoir poster un commentaire comme sur facebook.
ex: Posté il y a 02 minutes
Posté il y a 1 jour 52 minutes
Posté il y a environ 4 secondes
etc...
Qui peux m'aider?
Merci.
Bonjour,
A priori , ils enregistrent la date et l'heure de l’envoie du commentaire en base de données.
Ensuite, a l'affichage du commentaire ils n'ont plus qu'a faire une soustraction entre l'heure/date actuelle et celle de l'enregistrement.
Cette soustraction peut être directement faites en sql, ou tout autre langage (php, c# ...) qui permet de récupérer et afficher ces données.
Merci pour la réponse!
Comme je suis un peu débutant en php; je veux si tu peux me donner un exemple.
Il faut faire quelque chose comme ca:
Je te conseille de regarder le manuel php :
http://www.php.net/manual/en/function.mysql-db-query.php