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

php로 특정일 기준으로 지난주 월요일과 일요일 구하기 채택완료

수난이대 9개월 전 조회 1,877

예를들면

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개

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

</p>

<p><?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)));</p>

<p>

간단하게 하시려면 이렇게 하셔도 될 것 같네요.

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

답변에 대한 댓글 1개

수난이대
9개월 전
답변 감사합니다. 정말 간단한 코드라 채택해서 사용해보려고 했는데
정확히 이전주 월요일과 일요일이 출력되는거 같지는 않습니다.
예를 들어보면

$today = '2025-01-13 08:33:00';
echo date('Y-m-d', strtotime('-2 monday', strtotime($today)));
echo "-";
echo date('Y-m-d', strtotime('-1 sunday', strtotime($today)));

날짜를 1월13일로 했을경우 전주 월요일~ 일료일은 2025-01-06 - 2025-01-12 인데
2024-12-30 - 2025-01-12가 출력됩니다.

제가 좀 고민해겠습니다. 감사합니다.

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

9개월 전

자문자답... 이거 완전 노가다네요. <===그렇게 하는 것이 아닙니다

 

답변 미채택 상태로 만들어버린 질문이라 답변 하지않으려다가 답변 드립니다 

-------------------------------------다음처럼 해보세요

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 " $dd1 //  $dd2";

 

 

 

 

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

답변에 대한 댓글 1개

수난이대
9개월 전
제가 찾던부분 정확합니다..
채택을 못해드려서 죄송하네요.
너무 늦게 확인했어요.. 감사합니다 이 코드 활용해서 사용하면 될꺼같아요!!

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

9개월 전

$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 ' ';       echo '월요일 : ' . date("Y-m-d", $monday);       echo ' ';       echo '일요일 : ' . date("Y-m-d", $friday);     } else {       echo "월요일 부터 금요일의 날짜를 입력하세요.";     }    

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

답변에 대한 댓글 1개

수난이대
9개월 전
자문자답...

이거 완전 노가다네요..

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

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

로그인