2014-02-24 73 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