0

我在一个每周显示不同员工姓名的 Intranet 站点上有以下代码 - 它在员工数组中循环。它基本上会更新该特定一周内负责某些维护的站点。

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

我们不得不让网站离线一段时间,我们直接在浏览器中访问页面(不通过网络服务器运行)。

有没有办法调整上面的代码以在 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((Date.now()/1000) + 3*24*3600) / (7*24*3600)可能不会返回整数(并且 JavaScript 在使用%小数时返回与 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 回答