안녕하세요 여러분, 저는 "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粉9669797652023-09-14 15:43:03
여기에는 이 질문에 실제로 답변할 수 있는 정보가 충분하지 않습니다.
하지만 오류로 인해 문제는 time_in 및 time_out이 DateTime 개체가 아닌 것 같습니다.
먼저 DateTime:CreateFromFormat
를 통해 푸시해야 합니다.
이렇게 하면 DateTime 객체가 됩니다.
그런 다음 date_diff는 여전히 데이터베이스에 깔끔하게 저장할 수 없는 DateInterval 개체를 제공합니다.
Unix 에포크 타임스탬프를 활용하는 것을 고려해 보세요.
으아아아참고: "h:i a"에는 "오전 1시 30분" 형식이 필요합니다. 다른 옵션은 여기에서 확인하세요.