CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

return temps d'un chaine en secondes

Mith55
Mith55
Niveau 8
06 octobre 2007 à 16:34:33

bonjour,

voilà en fait je suis en train de créer une fonction ayant pour but de retourner un chaine en temps complet à partir de secondes:
30 => return 30 sec
60 => return 1mn
3600 => return 1h
3700 => return 1h, 1mn, 40 sec

Ainsi de suite..
Mais le probleme c´est que avec les gros chiffres sa fonctionne mal, auriez vous une idée, car je suis perdu dans tous ces calculs moi!

$p3 = 0;
if($tps < 60)
$temps = $tps;
elseif($tps == 60)
$temps = 1 .´"´;
else{
//Division
$p1 = floor($tps / 60); // Minutes
$p2 = ($tps % 60); // Secondes

if($p2 > 59){ // Plus de 60 secondes!
$Tmin = floor($p2 / 60); // Minutes
$Tsec = ($p2 % 60); // Secondes

$p2 = $Tsec - ($Tmin * 60);
$p1 = $p1 + $Tmin;
}

if($p1 > 59){
$Theure = floor($p1 / 60);
$Tmin = ($p1 % 60);

$p1 = ($p1 + $Tmin) - ($Theure * 60);
$p3 = $Theure;
}

return $p3 .´|´. $p1 .´|´.$p2;
}

___________________________
Voilà, mais c´est encore sous forme de test ^^ donc bon !!

Merci beaucoup

Pseudo supprimé
Pseudo supprimé 06 octobre 2007 à 17:13:41

J´ai pas tout lu c´est trop chiant à lire, donne des vrais noms à tes variages. Mais y´a un moment où tu affectes à $p2 un modulo 60, et la ligne d´après tu fais un if pour voir si $p2 est plus grand que 59, tu rentreras jamais dans ce if puisque $p2 sera forcément plus petit que 60 (lol ok si, tu rentreras dedans si tu prends un temps avec des dixièmes de secondes) puisqu´il provient d´un modulo 60.
Tiens une solution plus claire avec un exemple

$temps = 3700;

//comptage des heures entières
$heure = floor($temps / 3600); //$heure = 1 donc.

//minutes restantes
$temps = $temps % 3600; //$temps = 100 donc.

//comptage des minutes entières
$minute = floor($temps / 60); //$minute = 1 donc.

//secondes restantes
$seconde = $temps % 60; //$seconde = 40 donc.

return $heure.´h´.$minute.´m´.$seconde.´s´;// ça te retourne la chaine "1h1m40s" donc. Non ?

Mith55
Mith55
Niveau 8
07 octobre 2007 à 13:27:44

merci beaucoup!
Je vais tester sa, mais c´est sur que c´est largement plus clair que moi ^^ mdr

Merci ;)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment