> 백엔드 개발 > PHP 튜토리얼 > 월을 추가할 때 PHP의 DateTime::modify가 예기치 않게 작동하는 이유는 무엇입니까?

월을 추가할 때 PHP의 DateTime::modify가 예기치 않게 작동하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-10 16:51:10
원래의
818명이 탐색했습니다.

Why Does PHP's DateTime::modify Act Unexpectedly When Adding Months?

PHP의 날짜 산술: DateTime::modify의 의도 공개

PHP DateTime 클래스로 작업하는 동안 예상치 못한 문제가 발생할 수 있습니다. 달을 더하거나 뺄 때의 행동. 이 동작은 버그 여부에 대한 논의를 촉발시켰습니다.

의도된 동작

문서에 따르면 날짜에 월을 추가할 때 내부 프로세스에는 :

  • 월 번호 증가(예: 1에서 2로 추가) 1개월).
  • 새 달의 일수가 원래 날짜보다 적으면 PHP는 자동으로 날짜를 월말로 조정합니다.

제공된 예에서 :

  • 2001-01-31 결과에 2000-12-31 결과에 1개월 추가 (1월은 31일입니다.)
  • 2월은 28일이므로 3월 3일이 뒤따르므로 한 달을 더 추가하면 2001-03-03이 됩니다.

이러한 동작이 이유를 설명합니다. 버그로 간주되지 않습니다.

불일치

월을 추가하면 항상 다음 달의 해당 날짜로 날짜가 앞당겨지는 동작을 원하는 경우 다음 옵션이 있습니다.

  • 수동 계산 : 다음 달의 길이를 확인하고 날짜를 수동으로 조정하세요.
  • PHP 5.3 이상: "다음 달 1일" 구문을 활용하여 다음 달 1일로 이동합니다(예: 2010-02-01).

결론

DateTime 클래스의 월 더하기 및 빼기 동작은 의도된 디자인을 따릅니다. 특정 사용 사례의 경우 원하는 날짜 연산에 맞춰 맞춤형 솔루션을 구현해야 할 수도 있습니다.

위 내용은 월을 추가할 때 PHP의 DateTime::modify가 예기치 않게 작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿