Fonctions de conversions

Objectif

L’objectif de cette page est de regrouper différentes fonctions PHP permettant des conversions diverses.
Elle sera donc complétée au fur et à mesure que j’aurais développé de nouvelles fonctions de ce genre.

Convertir des Octets en Ko, Mo, Go,…

Cette fonction PHP permet d’attribuer la bonne unité à un nombre expimé en octets.

Code

function convert_octets($octet, $round)
{
    $unite_spec = array('o','Ko','Mo','Go','To');
    $count=0;
    $c = count($unite_spec);
    while($octet>=1024 && $count<$c-1)
    {
        $count++;
        $octet/=1024;
    }
    if($round>=0)
    {
        $arr = pow(10,$round);
        $number = round($octet*$arr)/$arr;
    } else {
        $number = $octet;
    }
    return(str_replace(".",",",$number.' '.$unite_spec[$count]));
}

Explications

La fonction prend deux paramètres:

  • $octet : Le nombre en octet qui sera converti à la bonne unité
  • $round: Le nombre de chiffre après la virgule (le degré d’arrondissement du nombre)

La variable $unite_spec permet de définir les unités (octets, Ko, Mo, Go,…) Si vous devez utiliser cette fonction dans un contexte de langue anglaise préférez (B,KB,MB,GB,TB)

La fonction va retourner une chaîne de caractères avec le paramètre $octet exprimé dans la bonne unité, suivi de l’unité en fonction.

Exemple

<?php
// La fonction:
echo convert_octets('25069584', '2');

// Donnera le résultat suivant:
23,91 Mo
?>

Conversion de Secondes en Heures:Minutes:Secondes

Cette fonction PHP convertit un nombre de secondes en heures, minutes et secondes au format HH:MM:SS

Code

function convert_seconds($seconds)
{
    $tps = $seconds % 3600;
    $time[0] = ( $seconds - $tps ) / 3600 ;
    $time[2] = $tps % 60 ;
    $time[1] = ( $tps - $time[2] ) / 60;
    if($time[0] < 10)
    {
        $hours = "0".$time[0];
    }else{
        $hours = $time[0];
    }
    if($time[1] < 10)
    {
        $minutes = "0".$time[1];
    }else{
        $minutes = $time[1];
    }
    if($time[2] < 10)
    {
        $sec = "0".$time[2];
    }else{
        $sec = $time[2];
    }
    return "$hours:$minutes:$sec";
}

Explications

La fonction prend un seul paramètre:

  • $seconds : Le nombre de secondes à convertir

Elle retourne le temps au fomat H:i:s (PHP) ou plus parlant HH:MM:SS

Exemples

<?php
// La fonction:
echo convert_seconds('250759');
// Donnera le résultat suivant:
69:39:19


echo convert_seconds('3605');
// Donnera le résultat:
01:00:05
?>

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *