PHP에서 처리 날짜와 시간은 매일 개발에서 매우 일반적인 작업 중 하나입니다. 그중에서도 Date_Sub는 DateTime 객체에서 지정된 시간 간격을 쉽게 빼낼 수있는 매우 실용적인 기능입니다. 이 튜토리얼은 date_sub 함수를 사용하여 현재 날짜, 월, 연도, 시간 등과 같은 특정 시간을 빼는 방법을 자세히 설명합니다.
date_sub는 두 가지 매개 변수를 취하는 내장 기능입니다.
DateTime 객체.
Dateinterval 객체.
함수는 DateTime 객체에서 DateInterval 에 의해 정의 된 시간 간격을 빼고 새 DateTime 객체를 반환하는 것입니다.
기능 프로토 타입 :
DateTime date_sub ( DateTime $object , DateInterval $interval )
참고 : PHP 8.0.0에서 시작하여 Date_Sub ()는 더 이상 사용되지 않은 것으로 표시되었습니다. 동일한 함수를 달성하기 위해 DateTime :: sub () 메소드를 사용하는 것이 좋습니다.
먼저 현재 시간을 나타내는 DateTime 객체를 만들어야합니다.
$date = new DateTime(); // 현재 날짜와 시간
그런 다음 시간 간격 객체를 만듭니다. 예를 들어 10 일을 빼고 싶습니다.
$interval = new DateInterval('P10D'); // P Express 기간,D 날을 나타냅니다
Dateinterval 의 형식은 ISO 8601입니다.
'P2Y' : 2 년
'P3M' : 3 개월
'P15D' : 15 일
'PT5H' : 5 시간
'pt30m' : 30 분
뺄셈 작동에 DateTime 의 Sub () 메소드를 사용하는 것이 좋습니다.
$date->sub($interval);
Format () 메소드를 사용하여 마지막 시간을 출력 할 수 있습니다.
echo $date->format('Y-m-d H:i:s');
<?php
// 현재 날짜와 시간
$date = new DateTime();
// 시간 간격을 만듭니다,예를 들어, 빼기 10 하늘
$interval = new DateInterval('P10D');
// 이 간격을 날짜부터 빼십시오
$date->sub($interval);
// 출력 결과
echo "10 하늘前的日期是:" . $date->format('Y-m-d H:i:s');
?>
예를 들어, 귀하의 웹 사이트는 기사의 게시 날짜 1 주일 전에 표시해야합니다.
$publishDate = new DateTime('2025-05-28');
$interval = new DateInterval('P7D');
$publishDate->sub($interval);
echo $publishDate->format('Y-m-d');
$registerDate = new DateTime();
$interval = new DateInterval('P7D');
$expireDate = clone $registerDate;
$expireDate->add($interval); // 무효화 시간을 등록 시간으로 설정하십시오 +7하늘
echo "제발 " . $expireDate->format('Y-m-d H:i:s') . " 이전 계정 활성화。";
$now = new DateTime();
$interval = new DateInterval('P1M');
$lastMonth = clone $now;
$lastMonth->sub($interval);
// 예를 들어, 방문 통계 페이지가 있습니다
$url = "https://gitbox.net/logs/view?start=" . $lastMonth->format('Y-m-d') . "&end=" . $now->format('Y-m-d');
echo "지난 달의 액세스 로그를 봅니다:<a href='$url'>$url</a>";
시간 형식 오류 : Dateinterval 의 형식은 ISO 8601 사양을 엄격하게 준수해야하며 무작위로 작성할 수 없습니다.
객체 참조 문제 : 원래 DateTime 객체를 직접 수정하면 후속 논리에 영향을 미치고 필요한 경우 클론을 사용합니다.
시간대 문제 : 불일치 기본 시간 영역은 시간 편차로 이어질 수 있습니다. 시간대를 수동으로 설정하는 것이 좋습니다.
date_default_timezone_set('Asia/Shanghai');
DateTime 과 DateInterval 의 조합을 통해 PHP는 개발자에게 매우 유연한 시간 컴퓨팅 기능을 제공합니다. date_sub () 또는 datetime :: sub () 메소드의 사용은 비교적 간단하지만 강력하고 대부분의 날짜 뺄셈 요구 사항을 충족 할 수 있습니다. 일일 개발에서, 시간 범위의 심사, 통계, 기록 등의 기능이 포함된다면,이 기능의 사용을 마스터하는 것이 매우 도움이 될 것입니다.