皆さん、こんにちは。「time_in」と「time_out」の 2 つのフィールドを含むフォームを送信します。
date_diff() を使用して 2 つの日付の差を取得しようとしています データベースの time_in が DATE 形式であり、time_out が DATE 形式であり、両方とも文字列ではないことを確認しました。
次のエラーが発生します: 致命的エラー: キャッチされない型エラー: date_diff0: パラメータ #1 (SbaseObject) は DateTimeInterface 型である必要があり、C:\ampp\htdocs\aicAdmin\scripts\backend-script.php の文字列: トレースが指定されました97スタック内: #0 C:ilxampp\htdocs\aicAdmin\scripts\backend-script.php(97):date_diff(°2023-05-19,2023-05-23#1(main) throwinC:\xampp\htdocs\aicAdmin\scripts\backend -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 分」という形式が必要です。その他のオプションは こちら を参照してください。