PHP eine zufällige Zahl erzeugt mit heutigen Datum
Ich versuche, ordnen Sie einen block von Inhalten (auf einer Webseite) eine zufällig generierte Zahl, die Basis zwischen dem heutigen Datum (was auch immer das sein wird) und eine Feste Zahl. Aus irgendeinem Grund gibt es dramatischen Unterschied in der Art von zahlen wird ausgegeben. Zum Beispiel, wenn ich mein test-code lokal die zahlen, die sind gut genug für mich (im positiven) aber wenn auf dem eigentlichen live-server sind Sie in der Regel das Gegenteil und negative zahlen.
Dies ist mein liner:
<?php $today=date('YmdHi'); echo rand(201203140906, $today); ?>
Im Grunde '201203140906" das Jahr, Monat, Tag, Stunde.
Ist das gut oder schlecht? Gibt es bessere Möglichkeiten, dies zu tun?
Könnten Sie Zeitstempel verwenden? Und verwenden Sie nicht
Versuchen Sie, die Samen, die random number generator, mit dem Datum, so dass der Inhalt randomisiert pro Tag?
Ich bin nicht gut mit PHP sieht man so die Hälfte von den oben genannten nicht viel Sinn 🙁 ich bin gerade versucht, sicherzustellen, dass eine Sperrung der Inhalte bestellt ist zufällig auf die Seite unter andere Blöcke, die in Datum um. Das ist der Grund.
rand()
, aber verwenden mt_rand()
. Sie können auch mt_getrandmax()
zu sehen, der größte Wert aus mt_rand()
. Ich würde auch Fragen, warum Sie versuchen, dies zu tun? Scheint seltsam, um den Wert zwischen einem Datum und einer festen Zahl, ein Datum kann ich verstehen.Versuchen Sie, die Samen, die random number generator, mit dem Datum, so dass der Inhalt randomisiert pro Tag?
Ich bin nicht gut mit PHP sieht man so die Hälfte von den oben genannten nicht viel Sinn 🙁 ich bin gerade versucht, sicherzustellen, dass eine Sperrung der Inhalte bestellt ist zufällig auf die Seite unter andere Blöcke, die in Datum um. Das ist der Grund.
InformationsquelleAutor egr103 | 2012-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf einem 32-bit-system, der größte Wert, der gehalten werden kann, eine INT 2147483647.
http://php.net/manual/en/language.types.integer.php
Wenn Ihr lokaler Computer ist 64-bit und server 32-bit, Sie haben unterschiedliche Größenbeschränkungen. Der server wird nicht in der Lage sein zu handhaben, eine ganze Zahl, so groß wie 201203140906.
Können Sie in der Lage sein, um nach dem Zufallsprinzip generieren eine kleinere Zahl, und dann hinzufügen, dass 201203140906.
Wie diese vielleicht:
ODER Sie können dies tun, generiert ein zufälliges Datum in den letzten zehn Tagen:
Ich habe einen ungetesteten code-Beispiel für Sie. Probieren Sie es aus.
Dies funktioniert für mich. Dank Scott!
Ich bin glücklich zu helfen. Wenn diese Antwort richtig ist, denken Sie daran, markieren Sie es als akzeptiert, indem Sie auf das Häkchen.
Mein einzige Problem mit dieser Methode ist, dass im Laufe der Zeit der Sperrung der Inhalte, wird die Anzeige weiter unten in der Seite, weil der Unterschied zwischen meinem festen Datum oder die Nummer und das aktuelle Datum wird wachsen. Ist keine ideale Lösung. Danke.
InformationsquelleAutor Scott Saunders
By the way... könnte man auch mit "uniqid()"
InformationsquelleAutor Tiago Relvao
Gegeben, Ihre Erklärung in den Kommentaren, können Sie wahrscheinlich lösen Ihr problem mit der shuffle() Funktion. Könnten Sie haben zwei arrays, einer Liste von Datumsangaben und andere Daten, die Sie verbreiten wollen und nach dem Zufallsprinzip dann Lesen Sie einfach aus dem gemischten Daten. Da es keine code-Beispiel lasse ich die details auf Sie.
InformationsquelleAutor h00ligan