login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Snippets > [functie] randtijd()

[functie] randtijd()

Auteur: MothZone - 15 augustus 2005 - 18:47 - Gekeurd door: nemesiskoen - Hits: 2518 - Aantal punten: (0 stemmen)



Uitleg:
Een functie om random een tijd te maken.
Heb het gebruikt toen ik gisterenavond een soort van 'random startgrid' maakte (met rijders uit de F1).
Er zitten ook 2 andere functies bij, time2ms() en ms2time().
Dit zijn 'hulpfuncties', dus time2ms() zet de tijd om naar milliseconden, en ms2time() het omgekeerde

Gebruik:
$tijd = randtijd([string min], [string max])

de minimum en maximum-tijd moeten wel zoals dit voorbeeld zijn:
(voorbeeld)
1:26.943
De tijd is dan 1 minuut 26 seconden en 943 milliseconden, race-liefhebbers kennen dit wrs wel.
Jah, het aantal minuten mag boven 60 zijn, maar dan blijft het zo: 61:09.493 en niet 1:1:09.493 ofzo.

Moesten er nog vragen zijn, pm maar ofzo 

Code:
  1. <?php
  2. function time2ms($tijd)
  3. {
  4. $dp = strpos($tijd, ":");
  5. $min_m = substr($tijd, 0, $dp);
  6.  
  7. $p = strpos($tijd, ".");
  8. $min_s = substr($tijd, $dp + 1, $p - $dp - 1);
  9.  
  10. $len = strlen($tijd);
  11. $min_ms = substr($tijd, $p + 1, $len - $p - 1);
  12.  
  13. switch(strlen($min_s))
  14. {
  15. case 0:
  16. $min_s .= 00;
  17. break;
  18. case 1:
  19. $min_s .= 0;
  20. break;
  21. }
  22.  
  23. switch(strlen($min_ms))
  24. {
  25. case 0:
  26. $min_ms = 000;
  27. break;
  28. case 1:
  29. $min_ms .= 00;
  30. break;
  31. case 2:
  32. $min_ms .= 0;
  33. break;
  34. }
  35.  
  36. return $min_m * 60000 + $min_s * 1000 + $min_ms;
  37. }
  38.  
  39. function ms2time($ms)
  40. {
  41. $min = floor($ms / 60000);
  42. $ms -= $min * 60000;
  43. $sec = floor($ms / 1000);
  44. $ms -= $sec * 1000;
  45.  
  46. switch(strlen($sec))
  47. {
  48. case 0:
  49. $sec = 00;
  50. break;
  51. case 1:
  52. $sec = "0".$sec;
  53. break;
  54. }
  55.  
  56. switch(strlen($ms))
  57. {
  58. case 0:
  59. $ms = 000;
  60. break;
  61. case 1:
  62. $ms = "00".$ms;
  63. break;
  64. case 2:
  65. $ms = "0".$ms;
  66. break;
  67. }
  68.  
  69. return $min.":".$sec.".".$ms;
  70. }
  71.  
  72. function randtijd($min = "0:00.000", $max = "59:00.000")
  73. {
  74. return ms2time(rand(time2ms($min), time2ms($max)));
  75. }
  76. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (6)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.021s