BOARD

팁·활용

PHP로 특정 날짜의 요일과 주차, 월 시작일 및 종료일 계산하기

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 42회 작성일 26-09-14 07:05

본문

PHP로 특정 날짜의 요일과 주차, 월 시작일 및 종료일 계산하기

그누보드 운영 시 통계나 게시물 데이터를 주간·월간 단위로 분류하기 위해 PHP 내장 함수로 요일과 주차, 월 범위를 계산하는 방법을 확인합니다.

요일과 주차 구하기

PHP에서 특정 날짜의 요일과 연간 주차를 숫자로 구하려면 date() 함수와 mktime() 함수를 조합하여 사용합니다. mktime()으로 특정 연, 월, 일의 타임스탬프를 생성한 뒤 date() 함수의 포맷 문자를 지정합니다.

$today_year = '2021';
$today_month = '01';
$today_day = '03';

$todayOfTheWeek1 = date('w', mktime(0, 0, 0, $today_month, $today_day, $today_year));
$today_week1 = date('W', mktime(0, 0, 0, $today_month, $today_day, $today_year));
  • 요일 구하기 (w): date('w', ...)는 숫자로 된 요일을 산출하며, 일요일은 0, 월요일은 1부터 시작하여 토요일은 6의 값을 가집니다.
  • 주차 구하기 (W): date('W', ...)는 연간 주차를 숫자로 산출합니다.

주의 시작일과 종료일 계산

기본적인 주의 기간 기준에 맞춰 해당 주의 시작일과 종료일을 계산합니다. 요일별 조건문을 적용하여 월요일 시작 기준의 주간 데이터베이스 저장용 날짜를 보정할 수 있습니다.

구한 요일 값($todayOfTheWeek1)을 바탕으로 해당 주의 시작일과 종료일 타임스탬프를 계산하는 코드는 다음과 같습니다.

$today_week_sday1 = mktime(0, 0, 0, $today_month, $today_day - $todayOfTheWeek1, $today_year);
$today_week_eday1 = mktime(23, 59, 59, $today_month, $today_day + (6 - $todayOfTheWeek1), $today_year);

월 시작일과 종료일 계산하기

PHP에서 특정 월의 첫 날과 마지막 날짜를 구하려면 mktime 함수와 date('t', ...)를 조합하여 사용할 수 있습니다.

월 시작일 및 종료일 코드 예시

$today_week_month_sday1 = mktime(0, 0, 0, $today_month, 1, $today_year);
$today_week_month_eday1 = mktime(23, 59, 59, $today_month, date("t", $today_week_month_sday1), $today_year);
  • mktime 함수를 통해 해당 월의 첫 날(1일) 및 마지막 날을 지정하고 타임스탬프를 얻을 수 있습니다.
  • date('t', ...)는 주어진 월의 총 일수(마지막 날짜 숫자)를 반환하므로, 이를 mktime의 일(day) 인자로 전달하여 월 종료일을 계산합니다.

PHP 날짜 계산 적용 후 점검 사항

코드를 적용한 뒤에는 원하는 연도와 월, 일을 임의로 변경하여 출력되는 요일과 주차, 그리고 월의 시작 및 마지막 날짜가 의도한 시간 범위에 정확히 부합하는지 테스트해 보아야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.