0

イントラネット サイトに、毎週異なる従業員名を表示する次のコードがあります。これは、staff 配列を循環します。それは基本的に、その特定の週のメンテナンスを担当する人でサイトを更新します.

<?php  
$staff = array('John', 'Mike', 'Chris');
echo $staff[((time()+3*24*3600)/(7*24*3600)) % count($staff)];
?>

しばらくの間、サイトをオフラインにする必要があり、ブラウザでページに直接アクセスしています (Web サーバー経由ではありません)。

上記のコードを Javascript で機能するように適合させる方法はありますか? 私は長い間 Javascript を使用しておらず、それが最善の策かもしれないと考えていましたが、a) 可能かどうか、b) どうすればよいかわかりません。

どんなヒントでも大歓迎です!

4

3 に答える 3

5

これは十分に単純に見えます。

var staff = ['John', 'Mike', 'Chris'];
var selected = staff[ Math.floor(((Date.now()/1000) + 3*24*3600) / (7*24*3600)) % staff.length ];

console.log(selected);

注: 私は秒を返し、ミリ秒を返す(Date.now()/1000)ので使用します。time()Date.now()

注 2: Math.floorasを使用すると、整数が返されない可能性があります (JavaScript は、小数で((Date.now()/1000) + 3*24*3600) / (7*24*3600)使用すると PHP とは異なる結果を返します)。%

于 2012-08-02T18:45:01.730 に答える
1

これを試して:

var timeInMilliseconds = new Date().getTime();
var timeInSeconds = Math.floor(timeInMilliseconds / 1000);

var staff = ["John","Mike","Chris"];
alert(staff[Math.floor((timeInSeconds + 3*24*3600)/(7*24*3600)) % staff.length]);​

出力

クリス

注: 整数を強制するために Math.floor を追加しました。

于 2012-08-02T18:39:48.947 に答える
0

これは先週ラウンドを行っていたので、興味があるかもしれません: http://phpjs.hertzen.com/

于 2012-08-02T18:35:16.410 に答える