0

私はサイトにある質問を調べましたが、私が直面している問題はもう少し深いと思います。difftime()関数を使用してみましたが、結果は0になります。

これまでのところこれは私がやったことです

$currentDate =  time();
//echo $printDate;
//echo $currentDate;
$editedDate = date("Y-m-d ", strtotime($printDate)); 
$editedCurrentTime = date("Y-m-d ", $currentDate); 


echo "$editedDate </br>";
echo "$editedCurrentTime </br>";

$timeDiff = ($editedCurrentTime - $editedDate);
echo "$timeDiff </br>";
$numberDays = floor($timeDiff/(60*60*24));

私は最初に時間を節約しています(); currentDateに、printDateには、エントリがデータベースに配置された日付が含まれます。両方ともフォーマットされており、エコーは正しく出力されます。3番目のエコーは、何らかの理由で減算が0になる場所です。strtotime($ currentDate)を試したところ、editedCurrentTimeのエコーは1970-01-01になりました。これは、フォーマットが異なるという事実に関係する小さな問題だと思いますが、それでも私は困惑しています。どんな助けでも大いに感謝されるでしょう。

出力の抜粋は次のとおりです。

2012-08-01 
2012-08-08 
0 
2012-08-01 
2012-08-08 
0 
2012-08-01 
2012-08-08 
0 
2012-08-02 
2012-08-08 
0 
4

2 に答える 2

2

この関数は、入力した形式に基づいて文字列date()を返します。文字列に対して算術演算を実行することはできません。

すべきことは、最初にデータベースから取得したタイムスタンプ(整数) の差を計算してから、この差を関数time()でフォーマットすることです。date()

(注: データベースにも UNIX エポック整数形式で日付と時刻を格納する必要があります。)

于 2012-08-08T13:15:44.917 に答える
1

これを探していますか?PHP を使用して 2 つの日付の差を計算する方法

于 2012-08-08T14:50:45.013 に答える