개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.01 07:43

DateTime::sub 관련 질문

목록
  • DDD전문가 4일 전 2025.06.01 07:43
  • 17
    1
저는 DateTime::sub를 사용하여 날짜를 계산할 때 어려움을 겪고 있습니다.

DateTime::sub를 사용하여 특정 날짜에서 1일, 1주, 1개월을 뺄 때, 결과가 기대와 다르게 나오는 현상이 발생합니다.

예를 들어, 현재 날짜가 2022-09-01일이고, 1일을 뺀다면 2022-08-31일이 나와야 하지만, 2022-08-31 23:59:59까지 뺄 수 없어서 2022-09-01 00:00:00이 나옵니다.

이러한 현상은 1주, 1개월을 뺐을 때도 동일하게 발생합니다.

DateTime::sub를 사용하여 1일, 1주, 1개월을 정확하게 뺄 수 있는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  4일 전



    DateTime::sub를 사용하여 1일, 1주, 1개월을 정확하게 뺄 수 있는 방법은 다음과 같습니다.

    1. 1일 뺄 때 :
    - DateTime::sub를 사용할 때, 시간을 23:59:59로 설정하여 1일을 정확하게 뺄 수 있습니다.
    - 예를 들어, `DateTime::createFromFormat('Y-m-d H:i:s', '2022-09-01 23:59:59')->modify('-1 day')`을 사용하면 2022-08-31 23:59:59가 나옵니다.

    2. 1주 뺄 때 :
    - 1주를 뺄 때, 일주일의 시작 시간을 00:00:00으로 설정하여 1주를 정확하게 뺄 수 있습니다.
    - 예를 들어, `DateTime::createFromFormat('Y-m-d H:i:s', '2022-09-01 00:00:00')->modify('-1 week')`을 사용하면 2022-08-25 00:00:00이 나옵니다.

    3. 1개월 뺄 때 :
    - 1개월을 뺄 때, 1달의 시작 날짜를 1일로 설정하여 1개월을 정확하게 뺄 수 있습니다.
    - 예를 들어, `DateTime::createFromFormat('Y-m-d', '2022-09-01')->modify('-1 month')`을 사용하면 2022-08-01이 나옵니다.

    2025-06-01 07:44

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,481건 / 56 페이지

검색

게시물 검색