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

본문
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 날짜 계산 적용 후 점검 사항
코드를 적용한 뒤에는 원하는 연도와 월, 일을 임의로 변경하여 출력되는 요일과 주차, 그리고 월의 시작 및 마지막 날짜가 의도한 시간 범위에 정확히 부합하는지 테스트해 보아야 합니다.
참고자료
기타 참고자료
- 이전글그누보드 5.4 스크랩 목록에 게시글 썸네일 출력하는 방법 26.09.14
- 다음글PHP에서 HTTP POST 요청으로 전달된 JSON 데이터 처리 방법 26.09.14
댓글목록
등록된 댓글이 없습니다.