1) ? $year : $year-1); $prev_m = sprintf('%02d', (($month > 1) ? $month-1 : 12)); $year = strval($year); $month = sprintf('%02d', $month); $today = date('Y/m/d'); //*--- DB登録 ---*// require_once (APPLICATION_ROOT . '/common/dbcontrol/dac.inc'); $objDac = new dac($objCnc); //旧暦情報の取得 $data_ary = array(); $sql = "SELECT to_char(date, 'yyyy/mm/dd') AS solar_date, *" . " FROM tbl_lunar_calendar" . " WHERE to_char(date, 'yyyymm') = '" . $year . $month . "'" . " ORDER BY date"; if (!$objDac->execute($sql)) { die("【DB接続エラー】旧暦情報の取得に失敗しました。"); } //旧暦データ配列に格納 while ($objDac->fetch()) { $data_ary[$objDac->fld['solar_date']] = $objDac->fld; } //DB接続をクローズする $objDac->db_con->close(); //*--- 日にちセルテンプレートの読み込み ---*// $fp = fopen(TPL_PATH_DAYCELL, "r"); $cellStr = fread($fp, filesize(TPL_PATH_DAYCELL)); fclose($fp); // 文字コード変換 $encode = mb_detect_encoding($cellStr, "ASCII,JIS,UTF-8,SJIS-WIN,SJIS,EUCJP-WIN,EUC_JP"); if ($encode != "UTF-8") $cellStr = mb_convert_encoding($cellStr, "UTF-8", $encode); //*--- カレンダー生成 ---*// $cal_ary = array(); //表示月1日の曜日を求める・・・曜日引数 ("日0","月1","火2","水3","木4","金5","土6") $intFstDay = date("w", mktime(0, 0, 0, $month, 1, $year)); //表示月の末日を求める $intLastDay = date("t", mktime(0, 0, 0, $month, 1, $year)); //カレンダー配列にセット $intDays = 1; //MAX6週 for ($idxWeek = 0; $idxWeek < 6; $idxWeek++) { //6週目に日にちがなければ飛ばす if ($intDays > $intLastDay) break; //週7日間 for ($idxWday = 0; $idxWday < 7; $idxWday++) { if ($intFstDay <= $idxWday && $intLastDay >= $intDays) { $cal_ary[$idxWeek][$idxWday] = $intDays; $intDays++; } else{ $cal_ary[$idxWeek][$idxWday] = ""; } } $intFstDay = -1; } //カレンダー部分のHTML生成 $cal_str = '
日 | '."\n";
$cal_str .= '月 | '."\n";
$cal_str .= '火 | '."\n";
$cal_str .= '水 | '."\n";
$cal_str .= '木 | '."\n";
$cal_str .= '金 | '."\n";
$cal_str .= '土 | '."\n";
$cal_str .= '
| '."\n"; } //旧暦情報セル else { $cal_str .= ' | '; // $cal_str .= $day; //旧暦情報をセット if (isset($data_ary[$Ymd]) && is_array($data_ary[$Ymd])) { $tmpStr = $cellStr; //新暦日付セット $tmpStr = str_replace('', htmlDisplay($day), $tmpStr); foreach($data_ary[$Ymd] as $k => $v) { if (($inStr = getMidString($tmpStr, '', '')) === FALSE) continue; //値が空なら表示なし if ($v == "") { $repStr = ""; //値があれば置き換える } else { //月形画像は画像ディレクトリのパスとファイル名、拡張子を付加する if ($k == "moon_shape") { $repStr = str_replace('', MOONSHAPE_IMG_DIR.MOONSHAPE_IMG_NAME.$v.MOONSHAPE_IMG_TYPE, $inStr); } else { $repStr = str_replace('', htmlDisplay($v), $inStr); } } $tmpStr = str_replace(''.$inStr.'', $repStr, $tmpStr); } $cal_str .= $tmpStr."\n"; } $cal_str .= ' | '."\n"; } } $cal_str .= '