메뉴 건너뛰기

프로그램언어

조회 수 1337 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

시작일에서 종료일까지 선택할때 달력에서 선택하면 되지만 가끔... 한두번으로 클릭으로 원하는 주의 자료를 보고 싶어하는 사람들이 가끔 있습니다.

 

이번주, 저번주같은 버튼으로 생성해 간단하게 만들 수 있지만 최대 15주전까지라던가 그 이상의 주간단위로 빠르게 원하는 주를 선택할때 셀렉트박스로 만들어 선택할 수 있게 만들었습니다.

 

우선 아래의 2가지 함수를 필요로 합니다.

<?php
 
// 셀렉트박스의 옵션을 만들어주는 함수 (보여질텍스, value값, 선택되어질값)
function option_str($data1,$data2,$option_name=''){
    $data1=explode("|",$data1);
    $data2=explode("|",$data2);
    for($i=0; $i < count($data1); $i++){ $dataA[$i] = trim($data1[$i]); }
    for($i=0; $i < count($data2); $i++){ $dataB[$i] = trim($data2[$i]); }
    for($i=0; $i < count($data2); $i++){
        $selected = ( $option_name == $dataB[$i] )? "selected":"";
        $result .="<option value='".$dataB[$i]."' ".$selected.">".$dataA[$i]."</option>";
    }
    return $result;
}
 
 
 
// 지정한날자를 기준으로  몇주전까지 배열로 생성
// $day = 기준날자(0000-00-00), $idx = 주간단위 수
function get_weeks($day, $idx=10) { 
    $today = strtotime($day);
    $start_day = date('Y-m-d', (strtotime('MONDAY', $today) > $today) ? strtotime('LAST MONDAY', $today) : strtotime('MONDAY', $today)); // 기준일짜 주의 시작일 (월)
    $end_day = date('Y-m-d', strtotime('SUNDAY', $today)); // 기준일짜 주의 종료일 (일)
    $arr[$start_day."X".$end_day] = "  이번주 : ".$start_day." ~ ".$end_day;
    for($i=0; $i < $idx; $i++) {
        $tt = (($i+1)<10)? "0":"";
        $a = date('Y-m-d', strtotime('-'.($i+1).' WEEK', strtotime($start_day))); // 주시작일(월)
        $b = date('Y-m-d', strtotime('-'.($i+1).' WEEK', strtotime($end_day))); // 주종료일(일)
        $arr[$a."X".$b] = $tt.($i+1)." 주전 : ".$a." ~ ".$b;
    }
    return $arr;
}
?>


사용법은 아래와 같습니다.


<select name='week' id='week' class='week'>
     <?php
     $wk = get_weeks(G5_TIME_YMD, '15');  // 오늘날짜를 기준으로 15주전까지 배열 생성
     $week_txt = implode("|", $wk); // 배열의 원소를 구분자"|"를 붙여 합침.
     $week_val = implode("|", array_keys($wk)); // 배열의 키를 구분자 "|"를 붙여 합침
     echo option_str($week_txt, $week_val,$week); // 옵션 생성
?>
</select>

셀렉트박스의 value값이 0000-00-00X0000-00-00의 형태로 시작일과 종료일의 구분을 "X"로 하였으니 받는쪽에서는 "X"로 구분하여 시작일과 종료일을 구분해주면 됩니다.

 

예를 들면 아래처럼~~


list($fr_date, $to_date) = explode("X", $_GET['week']);
$sql = "select * from table_name where reg_date between '$fr_date' and '$to_date' ";
$result = sql_query($sql);

2000880543_1544886405.1517.jpg


List of Articles
번호 제목 날짜 조회 수
120 다중파일 업로드 + 이미지 미리보기 (Javascript, jQuery ) file 2020.12.15 914
119 단어필터링 2019.01.08 1251
118 대소문자 바꾸기 (strtoupper, strtolower) 2016.12.23 19658
117 도메인 앞에 자동으로 WWW를 붙이는 방법 2017.03.07 18885
116 두 날짜 사이의 차이 구하기 2017.03.07 18866
115 디렉토리 안의 파일의 내용들을 읽는 예 2016.12.23 19012
114 디렉토리내 특정 확장자를 가진 파일 전부 삭제 file 2015.04.14 25515
113 디렉토리의 제어 2019.01.08 1222
112 디비내용을 엑셀 파일로 다운로드 시키는 방법 2019.01.08 1391
111 로그인페이지에서 온 경우/로그인한 페이지로 이동 2016.12.23 18847
110 로또 숫자 랜덤하게 1~45까지 숫자 빼오기 2014.02.27 25438
109 리다이렉션(페이지 이동)의 3가지 방법, location.href 2017.03.07 40257
108 리스트 페이징 2014.02.27 19386
107 링크를 걸때 http 처리방법 2016.12.23 19019
106 마우스 오버시 사진변환, 파일에러시 대체이미지 적용(소스일부) 2018.07.24 4584
105 멀티 파일다운로드 꽁수로 구현하기 2020.06.19 438
104 메모장소스 2019.01.08 2000
103 메일주소의 골뱅이를 그림처리하기 2017.03.06 15508
102 몫과 나머지 구하기 2017.03.07 18471
101 무조건 알아야 할 PHP 속도 테스트 14 가지 2014.02.27 30280
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved