0

PHP 配列リストに日付のリストがあります。すべての日付は火曜日または木曜日のいずれかで、次の形式になっています: 2012 年 3 月 8 日。なし)、各日付が何曜日に到着するかを確認します。発見したら、それらを 2 つの別々のリストに入れたいと思います。1 つは火曜日に到着する 4 つ用、もう 1 つは木曜日用の 4 つです (後で別々の DIV に入れます)。誰でもこれを行う方法について考えがありますか?

200 行以上のコードを区切るために、ここに私の例を示します。

今日は 2012 年 11 月 26 日月曜日です。

これが私の日付の配列です:

平成24年11月27日 平成24年
11月29日 平成24年
12月4日 平成24年
12月6日 平成24年
12月11日 平成24年
12月13日 平成24年
12月18日 平成24年
12月20日 平成24年
12月25日 平成24年
12月27日平成25年
1月1日 平成25年
1月3日 平成25年
1月8日、2013 年
1 月 10 日

これを2つのリストに変えたい:

火曜日のリスト 2012 年 11 月 27 日 2012 年
12 月 4 日 2012 年
12 月 11 日 2012 年
12 月 18 日

木曜日のリスト 2012 年 11 月 29 日 2012 年
12 月 6 日 2012 年
12 月 13 日 2012 年
12 月 20 日

前もって感謝します!

4

2 に答える 2

0

これはいくつかのステップのプロセスです(関数の作成、キーの取得、キーの位置を使用して日付を並べ替えるデータのループ)

配列(投稿されたサンプル配列を使用)-

$date_array = array('November 27, 2012','November 29, 2012','December 4, 2012','December 6, 2012','December 11, 2012','December 13, 2012','December 18, 2012','December 20, 2012','December 25, 2012','December 27, 2012','January 1, 2013','January 3, 2013','January 8, 2013','January 10, 2013');

$array最も近い値を見つけるための関数を作成することから始めます

function closest($array, $number) {

  ksort($array);
  foreach ($array as $a) {
    if (strtotime($a) >= strtotime($number)) return $a;
  }
  return end($array);
  };

新しい関数を使用して、今日の日付、または次に近い日付を見つけて、そのvalueキーを取得します-

$today = date("F j, Y");
$value = closest($date_array, $today);
$key = array_search($value, $date_array);

データを保持するための作成TuesdayThursday配列-

$tues_array = array();
$thurs_array = array();

date現在の(または最も近い)日付から始めて、それぞれを8回ループし、それらを(2)と(4)$key+8のいずれかに追加します。TuesdayThursday

for($i=$key;$i<($key+8);$i++){
  $dayofweek = date('w', strtotime($date_array[$i]));
    if ($dayofweek == 2){
        $tues_array[] = $date_array[$i];}
    if ($dayofweek == 4){
        $thurs_array[] = $date_array[$i];}
}
于 2012-11-27T07:06:13.330 に答える
0

どうですか:

date('w', strtotime($my_date));

これにより、必要なすべての情報が得られるはずです。

于 2012-11-26T18:50:01.487 に答える