-3

実際、私はユーザーがデータベースにいくつかのエントリを広告するphp Webサイトに取り組んでいます。挿入時に、データベースにも格納されている日付フィールドを 1 つ追加します。ここで、そのエントリの経過時間 (そのエントリをデータベースに保存してから経過した時間) が必要です。そのために、その日付を渡す 1 つの関数を呼び出してから、strtotime() 関数を使用して、その時間を秒単位で取得しています。経過時間を取得するために、現在の時間からその変換された時間を減算しています。そして、ここで私は主な問題を抱えています。それは私に負の価値を与えます。そして、私はここで長い間立ち往生しており、負の値を返す理由を理解できません。これで私を助けてください。これが私の試したコードです。

function timeSpan($string) 
{ 
$timestamp = strtotime($string); 
$now = time(); 
$timeSpan = $now-$timestamp; 
...........
...........
}

ここでは、フォームの送信時にデータベースに保存される関数に、日時を $string として渡しています。タイプ「datetime」で日付を保存しました。そして今、$timeSpan 変数は負の値を返しています。負の値を返す理由を知っている人はいますか?

4

2 に答える 2

0

皆さん、私はこれに対する解決策を得ました。実際には、この関数はサーバー時間を返します。その時間は、サーバーの場所によって異なります。その時のリターン。だから私は自分のタイムゾーンを指定しました。そして今、正しい時間が戻ってきました。

于 2013-11-08T09:45:11.197 に答える
0

減算が負の値を返す場合は、保存されている time() がサーバーの現在の時刻よりも新しいためです。

time()1970 年 1 月 1 日から経過した秒数です。

たとえば、保存されたタイムスタンプが 111 で、サーバーが現在の時刻を 100 と表示している場合、負の値が返されます。

于 2013-08-30T13:14:18.033 に答える