検索

ホームページ  >  に質問  >  本文

2 つの日付フィールドを含むフォームを送信し、PHP で date_diff() を使用するとエラーが発生する

皆さん、こんにちは。「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粉817354783P粉817354783447日前476

全員に返信(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
  • キャンセル返事