0

現在の日付に続く 10 日間の営業日のリストの HTML コードを生成する必要があります。営業日とは、営業日 (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>

さらに情報が必要な場合は教えてください。

ありがとうございました。

4

2 に答える 2

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 日の仮定に依存しています。その数を変更したい場合は、何らかのカウンターを追加して、平日/休日以外を調べている場合にのみカウンターを増やすことができます。

于 2012-05-29T20:15:33.663 に答える
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();
  // ...
}
于 2012-05-29T20:24:45.670 に答える