Page 1 sur 1

Calculer une durée avec date()

Posté : 19 juil. 2011, 14:48
par Castor Gaspard
Bonjour,

Je me bats toujours avec mes problèmes de date.

Je veux calculer une durée en heures, minutes et secondes à partir d'une durée en secondes.

D'abord, j'ai employé une syntaxe comme...
$delta = 18137:
$delta_hours = intval($delta / 3600);
$delta_minutes = intval(($delta % 3600) / 60);
$delta_seconds = ($delta % 3600) % 60;
qui fonctionne correctement.

Mais, en continuant à réfléchir, je me suis dit que la fonction date ferait le calcul seule, solution bien plus intelligente, n'est-ce pas ? :D

Or, il y a une bizarrerie. Quand j'utilise...
$delta = 18137;
$date= date(('H:i:s'), $delta);
Php me rajoute toujours une heure fictive. Je peux contourner le problème avec ($delta - 3600), mais cette solution est bricolée.

Selon vous, est-il licite d'utiliser la fonction date ici ? N'ai-je pas compris la documentation ?

Merci. :D

Cordialement,

Gaspard

Re: Calculer une durée avec date()

Posté : 19 juil. 2011, 15:40
par Skikit
Bonjour,

Le second paramètre à passer à la fonction date doit être un timestamp (le nombre de secondes depuis le 1er janvier 1970).
Ainsi, tu ne peux pas utiliser la fonction date de cette façon.

Re: Calculer une durée avec date()

Posté : 19 juil. 2011, 15:41
par Ryle
Ce serait pas une question d'heure d'été ?

Et si tu utilises gmdate() au lieu de date() ?

Re: Calculer une durée avec date()

Posté : 19 juil. 2011, 16:30
par Castor Gaspard
Bonjour,

@ Skikit. La documentation ne précise pas le point de départ d'un Timestamp, me semble-t-il. De plus, la fonction peut être commode pour convertir des jours, des heures...

@ Ryle. Tu as raison comme d'habitude. gmdate() permet de contourner mon problème des 3600 secondes qui se promenaient. Merci. :mrgreen:

Cordialement,

Gaspard