PHP에서 두 날짜 사이의 날짜를 찾는 방법

1831 단어 webdevphp
애플리케이션에서 날짜로 작업하고 싶을 때가 있으며 두 날짜의 차이를 찾는 것은 매우 일반적입니다. 모든 프로그래밍 언어에서 날짜를 처리하는 것은 항상 지루한 프로세스이므로 이 게시물에서 쉽게 처리할 수 있도록 하겠습니다.

우리는 PHP가 제공하는 2개의 내장 함수를 사용할 것입니다.
  • strtotime() - strtotime()은 날짜를 Unix timestamp로 변환합니다. 허용되는 날짜 형식의 유형은 PHP's datetime documentation
  • 에서 찾을 수 있습니다.
  • round() - round()는 부동 소수점 숫자를 가장 가까운 정수로 반올림하는 수학 함수입니다. 예: round(4.5) = 5, round(3.4) = 3 등

  • 이 두 함수를 사용하여 필요한 것을 얻는 방법을 살펴보겠습니다.

    <?php
        $start_date = "3rd August 2022";
        $end_date = "15th August 2022";
    
        // ts means timestamp
        $start_ts = strtotime($start_date);
        $end_ts = strtotime($end_date);
    
        $diff = $end_ts - $start_ts;
    
        echo round($diff / 86400); // returns 12, that is 12 days
    


    그래서 정확히 무슨 일이 일어나고 있습니까?
  • 차이점을 찾으려는 시작 및 종료 날짜를 저장하기 위해 두 개의 변수를 만듭니다.
  • strtotime() 메소드는 날짜를 Unix 타임스탬프 형식으로 변환합니다. 1970년 1월 1일부터 두 날짜까지의 초 수를 얻을 수 있도록 이 두 날짜를 변환해야 합니다. 이것은 매우 중요한 단계입니다.
  • 두 날짜를 서로 빼서 초 단위의 차이를 구합니다.
  • 그런 다음 그 차이를 86400으로 나눕니다. 왜 86400일까요? 왜냐하면 86400은 하루의 초 수(60초 x 60분 x 24시간)이기 때문입니다. 그 차이를 하루의 총 초 수로 나누면 우리가 찾고 있는 일 수를 알 수 있습니다.
  • 마지막 단계는 최종 답을 정수로 반올림하는 것입니다.

  • 이것을 더 나아가 함수 안에 넣어 여러 곳에서 재사용할 수 있도록 할 수도 있습니다.

    <?php
        function dateDiff($start, $end) {
            $start_ts = strtotime($start);
            $end_ts = strtotime($end);
            $diff = $end_ts - $start_ts;
    
            return round($diff / 86400);
        }
    


    이것은 구축하기가 매우 쉽고 간단하며 도움이 되는 많은 사용 사례가 있습니다. 이 문제를 처리하는 더 좋은 방법이 있습니까? 댓글에서 알고 싶습니다.

    좋은 웹페이지 즐겨찾기