私の問題の答えを見つけようとしています。$ startの入力日が与えられた。しかし、時間のない日付フィールドを使って同じことが行われると、エラーが発生します。フィールド日付と現在の日付との間の日数をPHPを使って調べる方法
<?php
$start = new DateTime('2011-10-12');
$today = new DateTime();
$days = round(abs($today->format('U') - $start->format('U'))/(60*60*24));
echo $days;
?>
それは、をエコー表示します。
しかし、私はを交換する場合は$ テーブルのフィールドなどでを開始:非オブジェクトのメンバ関数形式の呼び出し():
$start = $demurage2[DC_date];
echo $start;
$today = new DateTime();
$dcdate = round(abs($today->format('U') - $start->format('U'))/(60*60*24));
echo $dcdate;
エラー: 致命的なエラー私はたったの$を開始エコーしようとしている490
ライン上/home/tech17/public_html/svga/invoice-detail.php、それがテーブルから正しい日付を示しています。2012-01-17。
2番目の例では、$ startの内容は何ですか?あなたはそれがDateTimeオブジェクトであることを期待していますが、それがMySQLから直接来たのであれば、おそらくYYYY-MM-DDの形式の文字列です。 – liquorvicar
$ startエコーすると、テーブルから正しい日付の値を返します(2012-01-17、文字列かどうかはわかりません)。この場合、私は再び変換を試みるべきですか?私は最後に数日を取得する必要があります。 – user1114409