Michael W.: millisekunden

Hi,

wie kann ich die aktuelle millisekunde in einer variable speichern. ob das jetzt die millisekunde der aktuellen zeit ist oder sonstwas ist mir egal - hauptsache ich bekomme so endlich mal eine zufallszahl raus die auch zufällig ist. da mt_rand() ja die beschissenste funktion überhaupt ist.

$ms1 = xxxxx(xx);
$ms2 = xxxxx(xx);

in $ms1 soll eben eine millisekunde drin stehen... hmm... wie weit gehen millisekunden? 10? 100? 10 oder?

und steht in $ms2 dann die selbe zahl drin?
weil im prinzip wird sie ja einen moment später ausgeführt, aber ob das einen unterschied macht?

MfG
Michael W.

  1. Hi

    in $ms1 soll eben eine millisekunde drin stehen... hmm... wie weit gehen millisekunden? 10? 100? 10 oder?

    $millisekunden = time();
    funktioniert zufriedenstellend bis mindestens ins Jahr 2037.

    und steht in $ms2 dann die selbe zahl drin?

    Wie meinst du das?

    weil im prinzip wird sie ja einen moment später ausgeführt, aber ob das einen unterschied macht?

    Das kommt darauf an, wie schnell der Rechner ist. Im Prinzip sollte sie aber gleich sein, wenn nichts dazwischen passiert.

    Fabian

    1. in $ms1 soll eben eine millisekunde drin stehen... hmm... wie weit gehen millisekunden? 10? 100? 10 oder?

      Zähle mal nach, wieviele Millimeter in einem Meter sind, dann weißt Du auch, wieviele Millisekunden in einer Sekunde sind :)

      $millisekunden = time();

      time() liefert Sekunden.

      Die richtige Funktion für Sekundenbruchteile steht in der PHP-Anleitung im Kapitel der Datums- und Zeitfunktionen. Einfach mal einen ganz fürchterlich neugierigen Blick reinwerfen, das ist nicht schwer und kostet keine Minute (oder ist zumindest deutlich schneller als hier im Forum auf Antworten zu warten).

      weil im prinzip wird sie ja einen moment später ausgeführt, aber ob das einen unterschied macht?
      Das kommt darauf an, wie schnell der Rechner ist. Im Prinzip sollte sie aber gleich sein, wenn nichts dazwischen passiert.

      Nein, sie muß nicht "im Prinzip gleich sein". Du hast es doch selbst gesagt: Es kommt darauf an, wie schnell der Rechner gerade ist.

      Gruß,
        soenk.e

  2. Hi!

    wie kann ich die aktuelle millisekunde in einer variable speichern. ob das jetzt die millisekunde der aktuellen zeit ist oder sonstwas ist mir egal - hauptsache ich bekomme so endlich mal eine zufallszahl raus die auch zufällig ist. da mt_rand() ja die beschissenste funktion überhaupt ist.

    Was ist an mt_rand schlecht? Man muß nur wissen wie man es benutzt, und das sagt Dir das Manual:
    http://www.php3.de/manual/de/function.mt-rand.php

    Und da steht ein wichtiger Satz:

    "Benutzen Sie unbedingt mt_srand(), um vor dem ersten Aufruf von mt_rand() einen neuen Startwert festzulegen, ansonsten erhalten Sie bei jedem Programmlauf dieselbe Sequenz von Werten."

    Und dann guckst Du Dir mt_srand() an:
    http://www.php3.de/manual/de/function.mt-srand.php

    Und da steht ein pima Beispiel wie man an eine nette Zufallszahl kommt.

    Grüße
    Andreas

    1. Interessant!

      aber wie mache ich aus

      <?php
      $ziffern = "5";
      for($i=0; $i <= $ziffern; $i++)
      {
      mt_srand((double)microtime()*1000000);
      $randval = mt_rand();
      }
      echo $zahl;
      ?>

      ein script das mir eine zahl mit der anzahl von $ziffern ziffern liefert?
      ??
      MfG
      Michael W.

      1. Hi!

        z.B. so:

        <?php
        $ziffern = 5;
        mt_srand((double)microtime()*1000000);
        $randval = mt_rand(pow(10,$ziffern-1),pow(10,$ziffern)-1);
        echo $randval;
        ?>

        Grüße
        Andreas

        1. Hi,

          <?php
          $ziffern = 5;
          mt_srand((double)microtime()*1000000);
          $randval = mt_rand(pow(10,$ziffern-1),pow(10,$ziffern)-1);
          echo $randval;
          ?>

          Ist zwar ne schöne rechnung aber es muss auch bis 50 gehen können.
          wie erreiche ich das ?

          MfG
          Michael W.

          1. Ist zwar ne schöne rechnung aber es muss auch bis 50 gehen können.
            wie erreiche ich das ?

            <?php
            $ziffern = 50; // 1000000 ginge auch ^^
            $randval = "";

            mt_srand((double)microtime()*1000000);
            while(strlen($randval) < $ziffern)
            {
              $randval .= mt_rand();
            }
            $randval = substr($randval, 0, $ziffern);

            echo $randval;
            ?>