les microsecondes/millisecondes de js contre celles de PHP
Bonsoir,
je converti un programme javascript en php !!
voici le js ( oui je sais , il y a des var partout, mais ce n'est pas de moi !! ):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
var seed = Date.now();
function valueOrDefault(value, defaultValue) {
return typeof value === 'undefined' ? defaultValue : value;
}
function rand(min, max) {
min = valueOrDefault(min, 0);
max = valueOrDefault(max, 0);
console.log(seed);
seed = (seed * 9301 + 49297) % 233280;
return min + (seed / 233280) * (max - min);
}
function numbers(config) {
var cfg = config || {};
var min = valueOrDefault(cfg.min, 0);
var max = valueOrDefault(cfg.max, 100);
var from = valueOrDefault(cfg.from, []);
var count = valueOrDefault(cfg.count, 8);
var decimals = valueOrDefault(cfg.decimals, 8);
var continuity = valueOrDefault(cfg.continuity, 1);
var dfactor = Math.pow(10, decimals) || 0;
var data = [];
var i, value;
for (i = 0; i < count; ++i) {
value = (from[i] || 0) + this.rand(min, max);
if (this.rand() <= continuity) {
data.push(Math.round(dfactor * value) / dfactor);
} else {
data.push(null);
}
}
return data;
}
console.log(numbers({"min": -100, "max": 100, "count": 5})); |
le résultat: on voit que la valeur de _seed change ! ce sont des millisecondes ! ( on le voit au premier chiffre affiché )
la valeur de this.rand(min, max) change à chaque itération.
Du coup , ça retourne un tableau avec des valeurs différentes .
Mais si je "traduit" en php ? comment avoir la même chose ? je ne trouve pas le moyen d'avoir le même résultat: la variable _seed ne change pas.
Parce que les microseconde en PHP ...:oops:
j'ai tenté un fonction:
Code:
1 2 3 4 5
|
public function milliseconds() {
$mt = explode(' ', microtime());
return ((int)$mt[1]) * 1000 + ((int)round($mt[0] * 1000));
} |
que j'appelle ensuite dans la fonction rand: $seed = $this->milliseconds(); mais il n'y a aucun changement :(
Je ne voit pas comment faire .
Si quelqu'un à une idée.
Merci,
Laurent.