>  Q&A  >  본문

두 개의 날짜 필드가 있는 양식을 제출하고 PHP에서 date_diff()를 사용할 때 오류가 발생했습니다.

안녕하세요 여러분, 저는 "time_in"과 "time_out"이라는 두 개의 필드가 있는 양식을 제출합니다

date_diff()를 사용하여 두 날짜의 차이를 구하려고 합니다. 데이터베이스의 time_in이 DATE 형식이고 time_out이 DATE 형식이고 둘 다 문자열이 아닌지 확인했습니다

다음 오류가 발생합니다. 치명적인 오류: 포착할 수 없는 유형 오류: date_diff0: 매개변수 #1(SbaseObject)은 DateTimeInterface 유형이어야 하며 C:ampphtdocsaicAdminscriptsbackend-script.php:97에 지정된 문자열입니다. 스택 추적: #0 C:ilxampphtdocsaicAdminscriptsbackend-script.php(97):date_diff(°2023-05-19,2023-05-23#1(main) throwinC:xampphtdocsaicAdminscriptsbackend-script.phponline97

내 코드는

으아아아

그리고 백엔드 코드

으아아아

전체 양식 코드를 복사하지 않고 일부만 복사했습니다. 이 문제를 어떻게 해결할 수 있나요? ?

데이터베이스의 time_in과 time_out이 DATE 형식으로 저장되어 있는지 다시 확인했는데 모든 것이 제대로 작동하길 바랍니다

P粉817354783P粉817354783402일 전444

모든 응답(1)나는 대답할 것이다

  • P粉966979765

    P粉9669797652023-09-14 15:43:03

    여기에는 이 질문에 실제로 답변할 수 있는 정보가 충분하지 않습니다.

    하지만 오류로 인해 문제는 time_in 및 time_out이 DateTime 개체가 아닌 것 같습니다.

    먼저 DateTime:CreateFromFormat를 통해 푸시해야 합니다. 이렇게 하면 DateTime 객체가 됩니다. 그런 다음 date_diff는 여전히 데이터베이스에 깔끔하게 저장할 수 없는 DateInterval 개체를 제공합니다.

    Unix 에포크 타임스탬프를 활용하는 것을 고려해 보세요.

    으아아아

    참고: "h:i a"에는 "오전 1시 30분" 형식이 필요합니다. 다른 옵션은 여기에서 확인하세요.

    회신하다
    0
  • 취소회신하다