0

私は次のような休日のリストを持っています:

var holiDays =[[2013,01,01,'New Years Day'],[2013-05-27, 'Memorial Day']]

セレンダーに表示されますが、このリストはハードコーディングされているため、すべての休日のリストが年ごとに表示されるようにphpの関数が必要です。 $(function() { $("#id_holiday_date").datepicker({ beforeShowDay: setHoliDays });

      // set holidays function which is configured in beforeShowDay
     function setHoliDays(date) {
       for (i = 0; i < holiDays.length; i++) {
         if (date.getFullYear() == holiDays[i][0]
              && date.getMonth() == holiDays[i][1] - 1
              && date.getDate() == holiDays[i][2]) {
            return [true, 'holiday', holiDays[i][3]];
         }
       }
      return [true, ''];
    }

 });


this function work properly in date picker.this date picker takes date from hardcoded array.
I want a function like that:
function calculateHolidays($year = '') {

$holiDays = Array();
$year = ($year != '') ? $year : date('Y'); //Default Current Year
$newYear = "$year-01-01";
$temp = "$year-05-00 last monday";
$memorialDay = strtotime($temp);//last Monday of May for Current Year

前もって感謝します

4

2 に答える 2

1

私があなただったら、PEAR の日付の休日を調べます。

于 2013-03-01T11:08:26.220 に答える
0

[]これを行う 1 つの方法を次に示します。特定の年のすべての括弧を見つけたい場合は、次のようにします。

function display_holidays($year,$list){
    echo "<ul>";
    $list=str_replace(array('[[',']]','],['),array('[',']',']|['),$list);
    $list=explode("|",$list);
    foreach($list as $item){
        // find the items with the correct year
        if(strstr($item,"[".$year)){
            echo "<li>".$item."</li>";
        }
    }
    echo "</ul>";
}

使用例:

$list="[[2012,01,01,'New Years Day'],[2013,05,27, 'Memorial Day']]";
$year=2013;
display_holidays($year,$list);

結果は次のようになります。

<ul>
   <li>[2013,05,27, 'Memorial Day']</li>
</ul>

ps : ただし、達成したいことをより詳細に説明してください。

于 2013-03-01T11:27:49.437 に答える