php로 특정일 기준으로 지난주 월요일과 일요일 구하기
본문
예를들면
2025-01-14 08:33:00 일 경우에는 2025-01-06(월), 2025-01-12(일) 이렇게 두 날짜를
2025-01-23 12:33:00 일 경우에는 2025-01-13(월), 2025-01-19(일) 이렇게 두 날짜를
구할수 있는지요?
즉, php로 특정날짜를 입력하면 전주의 월요일과 일요일을 추출하고싶습니다.
답변 3
<?php
$today = '2025-01-14 08:33:00';
echo date('Y-m-d', strtotime('-2 monday', strtotime($today)));
echo date('Y-m-d', strtotime('-1 sunday', strtotime($today)));
간단하게 하시려면 이렇게 하셔도 될 것 같네요.
!-->$year = 2025;
$month = 01;
$day = 19;
// 특정 날짜의 타임스탬프값 구하기
$targetDateTimeStamp = mktime(0, 0, 0, $month, $day, $year);
// 요일 찾기
$dayOfWeek = date('w', $targetDateTimeStamp);
// 하루의 초(second)
$secondOfOneDay = 60 * 60 * 24;
switch ($dayOfWeek) {
case 0: // 일요일
$monday = $targetDateTimeStamp- ($secondOfOneDay * 6);
$friday = $targetDateTimeStamp ;
break;
case 1: // 월요일
$monday = $targetDateTimeStamp- ($secondOfOneDay * 7);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 1);
break;
case 2: // 화요일
$monday = $targetDateTimeStamp - ($secondOfOneDay * 8);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 2);
break;
case 3: // 수요일
$monday = $targetDateTimeStamp - ($secondOfOneDay * 9);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 3);
break;
case 4: // 목요일
$monday = $targetDateTimeStamp - ($secondOfOneDay * 10);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 4);
break;
case 5: // 금요일
$monday = $targetDateTimeStamp - ($secondOfOneDay * 11);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 5);
break;
case 6: // 토요일
$monday = $targetDateTimeStamp - ($secondOfOneDay * 12);
$friday = $targetDateTimeStamp - ($secondOfOneDay * 6);
break;
}
if (isset($monday) && isset($friday)) {
echo "{$year}년 {$month}월 {$day}일의 이 전주 월요일과 금요일의 날짜";
echo '<br>';
echo '월요일 : ' . date("Y-m-d", $monday);
echo '<br>';
echo '일요일 : ' . date("Y-m-d", $friday);
} else {
echo "월요일 부터 금요일의 날짜를 입력하세요.";
}
자문자답...
이거 완전 노가다네요. <===그렇게 하는 것이 아닙니다
답변 미채택 상태로 만들어버린 질문이라 답변 하지않으려다가 답변 드립니다
-------------------------------------다음처럼 해보세요
last Sunday, last week Monday ㅋ
$ddk="2025-01-14 08:33:00"; // 2025-01-06(월), 2025-01-12(일)
$dd = strtotime($ddk);
$dd1 = date("Y-m-d", strtotime("last week Monday" ,$dd));
$dd2 = date("Y-m-d", strtotime("last Sunday" ,$dd));
echo "$dd1 // $dd2 ";
$ddk="2025-01-23 12:33:00"; // 2025-01-13(월), 2025-01-19(일)
$dd = strtotime($ddk);
$dd1 = date("Y-m-d", strtotime("last week Monday" ,$dd));
$dd2 = date("Y-m-d", strtotime("last Sunday" ,$dd));
echo "<br> $dd1 // $dd2";