4
timeformat
time_format
SYNOPSIS
time_format($n, $d=false)
DESCRIPTION
time_format retourne la représentation sous forme de chaîne de caractères du nombre de secondes $n dans un format compact.
Si $n est inférieur à 60, $n est retourné en secondes.
Si $n est supérieur ou égal à 60 et inférieur à 3600, $n est retourné en minutes et secondes.
Si $n est supérieur ou égal à 3600 et inférieur à un jour, $n est retourné en heures, minutes et secondes.
Si $n est supérieur ou égal à un jour, si $d vaut false, $n est retourné en heures, minutes et secondes, sinon en jours, heures, minutes et secondes en utilisant $d comme suffixe du nombre de jours.
Si $n est négatif, time_format retourne 0.
EXEMPLE
Pour formater un nombre de secondes :
php > require 'library/timeformat.php';
php > echo time_format(12);
12s
php > echo time_format(123);
2m03s
php > echo time_format(12345);
3h25m45s
php > echo time_format(123456);
34h17m36s
php > echo time_format(123456, 'j');
1j10h17m36s
CODE
- function time_format($n, $d=false) {
- if ($n < 0) {
- return 0;
- }
- if ($n < 60) {
- return sprintf('%ds', $n);
- }
- if ($n < 3600) {
- return sprintf('%dm%02ds', intdiv($n, 60), $n % 60);
- }
- if ($n < 24*3600 or $d === false) {
- return sprintf('%dh%02dm%02ds', intdiv($n, 3600), intdiv($n, 60) % 60, $n % 60);
- }
- return sprintf('%d%s%02dh%02dm%02ds', intdiv($n, 24*3600), $d, intdiv($n, 3600) % 24, intdiv($n, 60) % 60, $n % 60);
- }
Commentaires