22 Voix

PHP: Convertir des Minutes en Heures et Minutes (0:00)

Question de Invité | 10/01/2024 à 11:09

Dans l'un de mes scripts PHP, j'ai une valeur temporelle spécifiée en minutes. Je souhaite afficher cette valeur sur mon site Web sous la forme heures:minutes. Ainsi, par exemple, "1:37 heures" au lieu de "97 minutes".

Cela signifie que j'ai besoin d'une fonction capable de transformer la valeur des minutes au format h:min. Existe-t-il une fonction disponible en PHP pour une telle conversion? De préférence, le plus simple possible.

RépondrePositifNégatifDateVoix
2Meilleure Réponse2 Voix

Vous pouvez utiliser une combinaison des fonctions PHP date() et mktime() pour cette conversion.

Par exemple, de cette manière:

echo date('G:i', mktime(0, 97)); // 1:37
echo date('H:i', mktime(0, 97)); // 01:37

Comme premier paramètre, mktime() prend le nombre d'heures, comme deuxième paramètre (facultatif) les minutes; après cela, des secondes, des mois, des jours et des années.

Lors de l'appel de mktime() avec mktime(0, 97), cela correspond à 0 heure et 97 minutes, qui peut être affiché dans un format personnalisé à l'aide de date(). En utilisant la chaîne de format "G:i", vous obtiendrez "1:37", avec "H:i" "01:37", comme exemple.

Bien sûr, vous pouvez aussi passer le nombre de secondes [mktime(0, 0, 120) = 120 secondes] ou vous pouvez mélanger les arguments [mktime(1, 2, 3) = 1 heure, 2 minutes et 3 secondes]. De même, vous pouvez également utiliser tous les autres caractères dans votre chaîne de format (par exemple "s" pour les secondes avec des zéros non significatifs, etc.).
10/01/2024 à 20:04

RépondrePositif Négatif
11 Vote

Alternativement, vous pouvez également utiliser la fonction sprintf() pour obtenir le même résultat.

Voici un exemple:

$t = 97;
echo sprintf("%d:%02d",   floor($t/60), $t%60);  // 1:37
echo sprintf("%02d:%02d", floor($t/60), $t%60);  // 01:37

On passe à cette fonction la chaîne de format ainsi que les valeurs qui doivent être remplacées dans la chaîne.

Dans les chaînes de format, nous utilisons ici %d pour les valeurs entières simples et %02d pour les valeurs entières qui doivent être affichées avec deux chiffres en utilisant des zéros non significatifs.

Comme valeurs, nous passons floor($t/60) et $t%60. En divisant par 60 et en coupant les décimales, on obtient le nombre d'heures. En conséquence, nous extrayons le reste de la division en calculant $t%60 afin d'obtenir le nombre de minutes avec cela.
10/01/2024 à 21:17

RépondrePositif Négatif
Répondre

Sujets Connexes

Types de Sujets sur askingbox.com

Article | 0 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.