2 つの日付フィールドを含むフォームを送信し、PHP で date_diff() を使用するとエラーが発生する
P粉817354783
P粉817354783 2023-09-13 23:39:55
0
1
411

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

全員に返信(1)
P粉966979765

この質問に実際に答えるには、ここには十分な情報がありません。

しかし、エラーを見ると、time_in と time_out が DateTime オブジェクトではないことが問題のようです。

最初に DateTime:CreateFromFormat 経由でプッシュする必要があります。 これにより、それらは DateTime オブジェクトになります。 次に、date_diff は、まだデータベースにきれいに保存できない DateInterval オブジェクトを提供します。

UNIX エポック タイムスタンプの利用を検討してください。

リーリー

注: 「h:i a」には「午前 1 時 30 分」という形式が必要です。その他のオプションは こちら を参照してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!