2012-05-29 103 views
0

我需要生成一個列表的HTML代碼,在當天之後的10個開放日的列表中,開放日期是指工作日(m,t,w,t和f),我是使用下面的函數將日期翻譯法語:基於當前日期的日期計數器

function f_date() { 
    $temps = time(); 
    $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'); 
    $jours_numero = date('w', $temps); 
    $jours_complet = $jours[$jours_numero]; 
    $NumeroDuJour = date('d', $temps); 
    $mois = array(' ', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'); 
    $mois_numero = date("n", $temps); 
    $mois_complet = $mois[$mois_numero]; 
    $an = date('Y', $temps); 
    $fr_temps = "$jours_complet, $NumeroDuJour $mois_complet $an"; 
    return "$fr_temps"; 
} 
echo "<br/>".f_date(); 

,我想產生以下結果:

<select name="ladate"> 
    <option selected="selected" value="Mardi, 29 mai 2012">29 mai 2012</option> 
    <option value="Mercredi, 30 mai 2012">30 mai 2012</option></select> 
    .... 
    <option value="Vendredi, 15 juin 2012">15 juin 2012</option></select> 
</select> 

請告訴我,如果你需要更多的信息。

謝謝。

+0

這裏有什麼問題?你有什麼麻煩? –

+0

使用哪些php代碼,考慮php函數,以生成當天的下列10個工作日。問題是服務器沒有更新版本的PHP,所以我需要使用這個PHP函數進行翻譯,並生成HTML ...並且我不知道如何繼續:/ – Zatla00

回答

0

只需創建一個循環,將日數增加到10並忽略所有非開放日(週六,週日)。 date('N')是檢測給定日期的工作日的朋友。

<?php 
$i = $openDay = 0; 
while($openDay < 10) { 
    $i++; 
    $time = strtotime('+'.$i.' days'); 
    $day = date('N', $time); 

    if ($day == 6 or $day == 7) { // ignore Saturdays and Sundays 
    continue; 
    } 

    echo f_date($time).'<br>'; 
    $openDay++; 
} 

你也必須修改date_f()功能使用$temps作爲參數。

<?php 
function f_date($temps = null) { 
    // $temps = time(); 
    // ... 
} 
2

由於您只是在尋找MTWTF,並且您希望在接下來的10天內,您總是可以安全地查找接下來的14天,而忽略週末,那樣會有10天的時間。它不適用於假期或類似的事情,但如果您需要這樣做,您可以更改它。我在這裏給你的僞代碼,我將離開所有的陣列映射和文本輸出到您

for ($days_to_add : 1 to 14) { 
    $new_date = date_add($days_to_add); 

    // check the day of the week 
    if (date('N', $new_date) >= 6) { 
     // ignore it, it's a weekend 
     continue; 
    } 

    // output the option tag for $new_date 
    echo "<option ... </option>" 
} 

這依賴於10 14天的假設,如果你想改變這個數字你可以添加某種計數器,並且只在計算週日/非假期時增加計數器

+0

感謝@mattedgod,但我認爲不理解你的代碼,並沒有足夠的知識來完成它;;(這是因爲我使用這個php函數,我發現通過谷歌搜索:/ – Zatla00

+0

什麼部分你不明白嗎? –

+0

輸出部分,我使用的代碼波紋管在它的作品。 – Zatla00