테스트 사이트 - 개발 중인 베타 버전입니다

일주일마다 다른 변수값 지정 채택완료

은빛여전사 6개월 전 조회 2,224

DB에 저장을 시작하는

첫째주 월~금요일 까지는 $data71

둘째주 월~금요일 까지는 $data72

셋째주 월~금요일 까지는 $data73

넷째주 월~금요일 까지는 $data71

다섯째주 월~금요일 까지는 $data72

여섯째주 월~금요일 까지는 $data73

이런식으로 반복되게 들어 가고

토요일, 일요일, 공휴일 에는 $data77이

 

$in_time 변수에 들어가게 하고 싶습니다

아래 코드대로 하면 될까요?

 

</p>

<p>$public_api_key = 'abcd1234'; // 공공데이터 포털 인증키</p>

<p>

$today = date('Y-m-d');

$week_day = date('w', strtotime($today)); </p>

<p>if ($week_day >= 1 && $week_day <= 5) { // 월~금요일

    $week_num = floor(($week_day - 1) / 7) % 3;

    $in_time = ${'data7'.($week_num+1)};

} else { // 토/일, 공휴일

    $in_time = $data77;

}</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
e
6개월 전

</p>

<p>$today = date('Y-m-d');</p>

<p>$week_day = date('w', strtotime($today));</p>

<p>if ($week_day >= 1 && $week_day <= 5) { // 월~금요일</p>

<p>    $term = (strtotime(date('Y-m-d')) - strtotime("2025-04-21")) / 86400;</p>

<p>    $week_num = floor($term / 7) % 3 + 1;</p>

<p>    $in_time = ${'data7'.($week_num+1)};</p>

<p>} else { // 토/일, 공휴일</p>

<p>    $in_time = $data77;</p>

<p>}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

은빛여전사
6개월 전
2025-04-21 이 첫주가 되는거죠?
그리고 계속 3주차마다 반복이고요
감사합니다

댓글을 작성하려면 로그인이 필요합니다.

6개월 전

일단 위 코드론 몇주차인지 채크가 불가할것 같아요.
아래 코드로 해보시겠어요?

 

</p>

<p>$public_api_key = 'abcd1234';

$today = date('Y-m-d');

$week_day = date('w', strtotime($today)); // 0 (일) ~ 6 (토)</p>

<p>// 이번 달 1일의 날짜

$month_start = date('Y-m-01');

$month_start_time = strtotime($month_start);</p>

<p>// 1일이 포함된 주의 월요일 (달의 1주차 시작 기준)

$month_first_monday = strtotime("monday this week", $month_start_time);

if (date('j', $month_start_time) <= 7 && date('w', $month_start_time) != 1) {

    $month_first_monday = strtotime("last monday", $month_start_time);

}</p>

<p>// 오늘 날짜 기준 주차 계산

$today_time = strtotime($today);

$diff_days = floor(($today_time - $month_first_monday) / (60 * 60 * 24));

$week_of_month = floor($diff_days / 7) + 1;</p>

<p>// 요일이 월~금이면 → 패턴대로

if ($week_day >= 1 && $week_day <= 5) {

    $pattern = [1 => 'data71', 2 => 'data72', 3 => 'data73', 4 => 'data71', 5 => 'data72', 6 => 'data73'];

    $week_key = $week_of_month % 6 == 0 ? 6 : $week_of_month;

    $key = $pattern[$week_key];

    $in_time = $$key;

} else {

    // 토요일(6), 일요일(0)

    $in_time = $data77;

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

은빛여전사
6개월 전
위 소스는 매달 1주차가 data71 이 되는건가요?
월 상관없이 1년 내내 매주 일주일마다 data71, data72, data73 3교대로 돌아가야 합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인