2014-02-24 45 views
1

我有一个相同css链接的文件,每天午夜12点更改。我的文件链接是这样css链接每天自动更改

<link rel="stylesheet" href="<?php $filelocation->fetchdir($css); ?>blue.css"> 

我想blue.css下周更改为green.css及以下yellow.css周,然后圈后再次开始

我怎样才能做到这一点?请

回答

5

将您的颜色存储在一个数组中,然后获取当前时间戳并将其除以7天。然后,得到的结果的模就大功告成了:

<?php 
// (...) 
$colors = array('blue', 'green', 'yellow'); 
$chosenColor = intval(time()/(60 * 60 * 24 * 7)) % count($colors); // 60 seconds, 60 minutes, 24 hours, 7 days, 3 color variants 

?> 
<link rel="stylesheet" href="<?= $filelocation->fetchdir($css) . $colors[$chosenColor]; ?>.css"> 

根据你想显示什么星期,改变数组中它们的顺序是什么颜色。

注意:当您在href属性中打开php标记时,您使用的是<?php。假设您想要输出结果,我将其更改为<?=,这与<? echo完全相同。

+0

感谢matewka和对不起我迟到的答复,但将这个改变自己的颜色?因为我记得有人在刷新页面时发生了这样的问题,因此时间又重新开始。我不希望发生这种情况。我想让服务器知道我上传这段代码的时间是什么时候开始的 – user3057514

+0

我在这里使用'time()'函数。它从服务器接收当前的时间戳,正如我在答案中所述。 – matewka

+0

对不起眼睛不好。你的代码并不是唯一的问题。我做了'回声',但仍然没有任何 – user3057514

1

您可以使用日期函数今年本周来获取和使用模数来选择合适的颜色:

<?php 
function color() { 
    switch(date('W') %3) { 
    case 0: return 'blue.css'; 
    case 1: return 'greeen.css'; 
    case 2: return 'yellow.css'; 
    } 
} 
?> 
<link rel="stylesheet" href="<?= $filelocation->fetchdir($css) . color(); ?> 
+0

我试过了。我想做一个快速测试,看它是否有效,并将“w”改为“S”,但没有任何变化 – user3057514

+0

这种方法有一个缺点。当一周中的一周发生变化时,模数序列崩溃。例如。上周在这一年是53.'53%3 == 2',然后新的一年从第一周开始,所以'1%3 == 1'。在这个特定的一天,你用颜色向后走。 __Moreover__,你绝对不能保证新的一年从星期一开始。 – matewka

+0

我真的不打扰,只要它每7天更换一次......我DID'开关(时间()/(60 * 60 * 24 * 7)%12)'是正确的吗?在我的光我有12种不同的颜色,所以我做了一个切换到'案件11' – user3057514