Quelle est la meilleure façon de calculer le nombre total de secondes entre deux dates ? Jusqu'à présent, j'ai essayé quelque chose du genre :
$delta = $date->diff(new DateTime('now'));
$seconds = $delta->days * 60 * 60 * 24;
Toutefois, le days
de l'objet DateInterval semble ne pas fonctionner dans la version actuelle de PHP5.3 (au moins sous Windows, elle renvoie toujours le même résultat que la propriété 6015
valeur). J'ai également essayé de le faire de manière à ne pas préserver le nombre de jours de chaque mois (arrondi à 30), les années bissextiles, etc :
$seconds = ($delta->s)
+ ($delta->i * 60)
+ ($delta->h * 60 * 60)
+ ($delta->d * 60 * 60 * 24)
+ ($delta->m * 60 * 60 * 24 * 30)
+ ($delta->y * 60 * 60 * 24 * 365);
Mais je ne suis vraiment pas heureux d'utiliser cette solution de fortune.
0 votes
Quel est le résultat de
$delta->format("%r%s")
?1 votes
@warrenm Le problème avec
format
c'est quand on dit que le nombre de secondes est 0 alors que le nombre de minutes est 1,$delta->format("%r%s")
s'avère être 0 :(4 votes
Pire encore, je parle en tant que personne qui corrige actuellement un défaut détecté lors de la revue de code d'un codeur qui a collé votre code EXACT ci-dessus - tous les mois n'ont pas 30 jours, et toutes les années n'ont pas 365 jours. :) (Edit : et ce codeur peut être moi-même !)