고수님들 달력에대해 질문있습니다. 정보
고수님들 달력에대해 질문있습니다.첨부파일
본문
예약프로그램을 스킨다운받아서 쓰고있는데 이 스킨은 주말중 일요일만 예약할 수 없게 한건데요 일요일도 예약가능하게 할려면 어떻게 소스를 변경해야할까요?
<?
include_once("./_common.php");
if (!function_exists("get_first_day")) {
// mktime() 함수는 1970 ~ 2038년까지만 계산되므로 사용하지 않음
// 참고 : http://phpschool.com/bbs2/inc_view.html?id=3924&code=tnt2&start=0&mode=search&s_que=mktime&field=title&operator=and&period=all
function get_first_day($year, $month)
{
$day = 1;
$spacer = array(0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4);
$year = $year - ($month < 3);
$result = ($year + (int) ($year/4) - (int) ($year/100) + (int) ($year/400) + $spacer[$month-1] + $day) % 7;
return $result;
}
}
if ($_GET['param2'])
{
$schedule_ym = $_GET['param2'];
unset($param2);
}
// 오늘
$today = getdate($g4[server_time]);
$year = (int)substr($schedule_ym, 0, 4);
$month = (int)substr($schedule_ym, 4, 2);
if ($year < 1) $year = $today[year];
if ($month < 1 || $month > 12) $month = $today[mon];
$current_ym = sprintf("%04d%02d", $year, $month);
$current_ym2 = sprintf("%04d-%02d", $year, $month);
$end_day = array(1=>31, 28, 31, 30 , 31, 30, 31, 31, 30 ,31 ,30, 31);
// 윤년 계산 부분이다. 4년에 한번꼴로 2월이 28일이 아닌 29일이 있다.
if( $year%4 == 0 && $year%100 != 0 || $year%400 == 0 )
$end_day[2] = 29; // 조건에 적합할 경우 28을 29로 변경
// 해당월의 1일을 mktime으로 변경
$mktime = mktime(0,0,0,$month,1,$year);
$mkdate = getdate(strtotime(date("Y-m-1", $mktime)));
// 1일의 첫번째 요일 (0:일, 1:월 ... 6:토)
$first_day = get_first_day($year, $month);
// 해당월의 마지막 날짜,
$last_day = $end_day[$month];
if ($month - 1 < 1) {
$before_ym = sprintf("%04d%02d", ($year-1), 12);
$before_m = sprintf("%02d", 12);
} else {
$before_ym = sprintf("%04d%02d", $year, ($month-1));
$before_m = sprintf("%02d", $month-1);
}
if ($month + 1 > 12) {
$after_ym = sprintf("%04d%02d", ($year+1), 1);
$after_m = sprintf("%02d", 1);
} else {
$after_ym = sprintf("%04d%02d", $year, ($month+1));
$after_m = sprintf("%02d", $month+1);
}
?>
<table width="213" cellpadding="0" cellspacing="0">
<tr>
<td height="31" colspan="7" align="center" bgcolor="#ffffff">
<a href="#" onClick="calendarSelectMonth('<?=$before_ym?>');calendarListChange();" onfocus="blur();"><img src="/images/reserve/calen_prev.gif" align="absmiddle" border="0" /> <?=$before_m?></a>
<B><?=$year?>/<?=$month?></B>
<a href="#" onClick="calendarSelectMonth('<?=$after_ym?>');calendarListChange();" onfocus="blur();"><?=$after_m?> <img src="/images/reserve/calen_next.gif" align="absmiddle" border="0" /></a></span></td>
</tr>
<tr>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_sun.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_mon.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_tue.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_wed.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_thu.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_fri.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_sat.gif" /></td>
</tr>
<?
$cnt = 0;
$day = 0;
for ($i=0; $i<6; $i++) {
echo "<tr>";
for ($k=0; $k<7; $k++) {
$cnt++;
// 오늘이라면
if ($today[year] == $year && $today[mon] == $month && $today[mday] == ($day+1))
{
$bgcolor = "#E8F3F9";
}
else {
// 올해
if ($today[year] == $year)
{
// 이번달이면
if ($today[mon] == $month)
{
// 오늘부터 마지막 날까지만 예약가능
if ($today[mday] <= ($day+1) && $last_day >= ($day+1))
{
$bgcolor = "#E1E5FF";
}
else $bgcolor = "#FFFFFF";
}
// 이번달 이후면 첫날부터 마지막 날까지
else if ($today[mon] < $month && $cnt > $first_day && ($day+1) <= $last_day)
{
$bgcolor = "#E1E5FF";
}
else
{
$bgcolor = "#FFFFFF";
}
}
// 올해 이후면 첫날부터 마지막 날까지
else if ($today[year] < $year && $cnt > $first_day && ($day+1) <= $last_day)
{
$bgcolor = "#E1E5FF";
}
else
{
$bgcolor = "#FFFFFF";
}
}
if ($k == 0) $bgcolor = "#FFFFFF";
echo "<td bgcolor='{$bgcolor}' onClick='' align='center' height='20'>";
if ($cnt > $first_day) {
$day++;
if ($day <= $last_day) {
$current_ymd = $current_ym . sprintf("%02d", $day);
$current_ymd2 = $current_ym2 . "-" . sprintf("%02d", $day);
if ($bgcolor == "#E1E5FF") echo "<a href=\"javascript:calendarSelectTimeListChange('{$current_ymd2}');\">";
echo $day;
if ($bgcolor == "#E1E5FF") echo "</a>";
} else {
echo " ";
}
} else {
echo " ";
}
echo "</td>";
}
echo "</tr>\n";
if ($day >= $last_day)
break;
}
?>
</table>
</div>
현재 테스트중인 사이트입니다.
http://igaonnuri.com/reserve/reserv_ok.html
그리고 utf파일을 euc로 변환했고 혹시나 해서 에디트플러스에서 ansi로 다시저장까지했는데 글짜가 깨져서 한글을 없에고 영문으로 했습니다. 어떻게 해야 한글을 쓸수있을까요 답변좀 부탁드리겠습니다. 감사합니다.
<?
include_once("./_common.php");
if (!function_exists("get_first_day")) {
// mktime() 함수는 1970 ~ 2038년까지만 계산되므로 사용하지 않음
// 참고 : http://phpschool.com/bbs2/inc_view.html?id=3924&code=tnt2&start=0&mode=search&s_que=mktime&field=title&operator=and&period=all
function get_first_day($year, $month)
{
$day = 1;
$spacer = array(0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4);
$year = $year - ($month < 3);
$result = ($year + (int) ($year/4) - (int) ($year/100) + (int) ($year/400) + $spacer[$month-1] + $day) % 7;
return $result;
}
}
if ($_GET['param2'])
{
$schedule_ym = $_GET['param2'];
unset($param2);
}
// 오늘
$today = getdate($g4[server_time]);
$year = (int)substr($schedule_ym, 0, 4);
$month = (int)substr($schedule_ym, 4, 2);
if ($year < 1) $year = $today[year];
if ($month < 1 || $month > 12) $month = $today[mon];
$current_ym = sprintf("%04d%02d", $year, $month);
$current_ym2 = sprintf("%04d-%02d", $year, $month);
$end_day = array(1=>31, 28, 31, 30 , 31, 30, 31, 31, 30 ,31 ,30, 31);
// 윤년 계산 부분이다. 4년에 한번꼴로 2월이 28일이 아닌 29일이 있다.
if( $year%4 == 0 && $year%100 != 0 || $year%400 == 0 )
$end_day[2] = 29; // 조건에 적합할 경우 28을 29로 변경
// 해당월의 1일을 mktime으로 변경
$mktime = mktime(0,0,0,$month,1,$year);
$mkdate = getdate(strtotime(date("Y-m-1", $mktime)));
// 1일의 첫번째 요일 (0:일, 1:월 ... 6:토)
$first_day = get_first_day($year, $month);
// 해당월의 마지막 날짜,
$last_day = $end_day[$month];
if ($month - 1 < 1) {
$before_ym = sprintf("%04d%02d", ($year-1), 12);
$before_m = sprintf("%02d", 12);
} else {
$before_ym = sprintf("%04d%02d", $year, ($month-1));
$before_m = sprintf("%02d", $month-1);
}
if ($month + 1 > 12) {
$after_ym = sprintf("%04d%02d", ($year+1), 1);
$after_m = sprintf("%02d", 1);
} else {
$after_ym = sprintf("%04d%02d", $year, ($month+1));
$after_m = sprintf("%02d", $month+1);
}
?>
<table width="213" cellpadding="0" cellspacing="0">
<tr>
<td height="31" colspan="7" align="center" bgcolor="#ffffff">
<a href="#" onClick="calendarSelectMonth('<?=$before_ym?>');calendarListChange();" onfocus="blur();"><img src="/images/reserve/calen_prev.gif" align="absmiddle" border="0" /> <?=$before_m?></a>
<B><?=$year?>/<?=$month?></B>
<a href="#" onClick="calendarSelectMonth('<?=$after_ym?>');calendarListChange();" onfocus="blur();"><?=$after_m?> <img src="/images/reserve/calen_next.gif" align="absmiddle" border="0" /></a></span></td>
</tr>
<tr>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_sun.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_mon.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_tue.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_wed.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_thu.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_fri.gif" /></td>
<td align='center' bgcolor="#ffffff"><img src="/images/reserve/date_sat.gif" /></td>
</tr>
<?
$cnt = 0;
$day = 0;
for ($i=0; $i<6; $i++) {
echo "<tr>";
for ($k=0; $k<7; $k++) {
$cnt++;
// 오늘이라면
if ($today[year] == $year && $today[mon] == $month && $today[mday] == ($day+1))
{
$bgcolor = "#E8F3F9";
}
else {
// 올해
if ($today[year] == $year)
{
// 이번달이면
if ($today[mon] == $month)
{
// 오늘부터 마지막 날까지만 예약가능
if ($today[mday] <= ($day+1) && $last_day >= ($day+1))
{
$bgcolor = "#E1E5FF";
}
else $bgcolor = "#FFFFFF";
}
// 이번달 이후면 첫날부터 마지막 날까지
else if ($today[mon] < $month && $cnt > $first_day && ($day+1) <= $last_day)
{
$bgcolor = "#E1E5FF";
}
else
{
$bgcolor = "#FFFFFF";
}
}
// 올해 이후면 첫날부터 마지막 날까지
else if ($today[year] < $year && $cnt > $first_day && ($day+1) <= $last_day)
{
$bgcolor = "#E1E5FF";
}
else
{
$bgcolor = "#FFFFFF";
}
}
if ($k == 0) $bgcolor = "#FFFFFF";
echo "<td bgcolor='{$bgcolor}' onClick='' align='center' height='20'>";
if ($cnt > $first_day) {
$day++;
if ($day <= $last_day) {
$current_ymd = $current_ym . sprintf("%02d", $day);
$current_ymd2 = $current_ym2 . "-" . sprintf("%02d", $day);
if ($bgcolor == "#E1E5FF") echo "<a href=\"javascript:calendarSelectTimeListChange('{$current_ymd2}');\">";
echo $day;
if ($bgcolor == "#E1E5FF") echo "</a>";
} else {
echo " ";
}
} else {
echo " ";
}
echo "</td>";
}
echo "</tr>\n";
if ($day >= $last_day)
break;
}
?>
</table>
</div>
현재 테스트중인 사이트입니다.
http://igaonnuri.com/reserve/reserv_ok.html
그리고 utf파일을 euc로 변환했고 혹시나 해서 에디트플러스에서 ansi로 다시저장까지했는데 글짜가 깨져서 한글을 없에고 영문으로 했습니다. 어떻게 해야 한글을 쓸수있을까요 답변좀 부탁드리겠습니다. 감사합니다.
댓글 전체