이 형식의 날짜가 있습니다.
2009-01-01
같은 날짜를 1 년 전에 반환하려면 어떻게해야합니까?
이 형식의 날짜가 있습니다.
2009-01-01
같은 날짜를 1 년 전에 반환하려면 어떻게해야합니까?
답변:
// set your date here
$mydate = "2009-01-01";
/* strtotime accepts two parameters.
The first parameter tells what it should compute.
The second parameter defines what source date it should use. */
$lastyear = strtotime("-1 year", strtotime($mydate));
// format and display the computed date
echo date("Y-m-d", $lastyear);
이 질문에 대한 답변으로 받아 들일 수있는 답변이 많지만 객체를 sub
사용하는 방법의 예는 보이지 않습니다 \Datetime
. https://www.php.net/manual/en/datetime.sub.php
따라서 참조를 위해를 사용 \DateInterval
하여 \Datetime
객체 를 수정할 수도 있습니다 .
$date = new \DateTime('2009-01-01');
$date->sub(new \DateInterval('P1Y'));
echo $date->format('Y-m-d');
다음을 반환합니다.
2008-01-01
에 대한 자세한 내용은 https://www.php.net/manual/en/class.dateinterval.php\DateInterval
문서를 참조하십시오.
다음 함수를 사용하여 날짜에서 1 년 또는 임의의 연도를 뺄 수 있습니다.
function yearstodate($years) {
$now = date("Y-m-d");
$now = explode('-', $now);
$year = $now[0];
$month = $now[1];
$day = $now[2];
$converted_year = $year - $years;
echo $now = $converted_year."-".$month."-".$day;
}
$number_to_subtract = "1";
echo yearstodate($number_to_subtract);
위의 예를 살펴보면 다음을 사용할 수도 있습니다.
$user_age_min = "-"."1";
echo date('Y-m-d', strtotime($user_age_min.'year'));