2017-07-25 11 views
0

私はタイマーを設定し、タスクを実行するのにかかる時間を計算したいと考えています。時差の計算(PHP)

だから私はちょうどテストまで設定以下のPHPコードを持っている:それは私に次のように出力できますけれども

$firstDate = date('Y-m-d h:m:s'); 
sleep(80); 
$secondDate = date('Y-m-d h:m:s'); 
$diffDates = (strtotime($secondDate) - strtotime($firstDate)); 

echo "Difference in dates is:" . $diffDates . "\n"; 

私はそれを実行すると:私は思ったんだけど何

Difference in dates is:-40 

を、ありますなぜそれが私に-40を与えるのですか?そして、私はちょうど終了日の簡単な計算を行うことができるように、どうすれば設定できますか?開始日は分です。

ご協力いただき誠にありがとうございます。

+0

私は(5)、私は結果として5を持っている睡眠とあなたのコードをテストしました。あなたはこのコードだけを持っていますか? –

+1

'date'を使用して時間文字列を作成し、' strtotime() 'を使って整数に変換します。あなたは自分自身でいくつかの問題を解決することができます: '$ firstDate = time(); sleep(80); $ secondDate = time(); $ diff = $ secondDate- $ firstDate;' –

+1

-40の結果を説明しませんが、奇妙なことに、私は20歳のときに80歳になるはずだった。 – WheatBeak

答えて

0

問題は、あなたが間違った日付形式を与えていることです。どのh:i:sないh:m:s

だからあなたの日付がされるべきである。date('Y-m-d h:i:s')

$firstDate = date('Y-m-d h:i:s'); 
sleep(80); 
$secondDate = date('Y-m-d h:i:s'); 
$diffDates = (strtotime($secondDate) - strtotime($firstDate)); 

echo "Difference in dates is:" . $diffDates . "\n"; 

その後、出力は次のようになります。​​

0

問題は、あなたが間違って自分の時間のフォーマット文字列を持っていることである:、

「分」の iでなければなりません

$firstDate = date('Y-m-d h:m:s');

m、再び「月」実際にあるので、それは07

ました

これは、それを修正します:

date('Y-m-d h:i:s')

このフォーマットを使用する場合は、amまたはpmを指定する場合はaを最後に追加するか、hの代わりにHを使用して24時間形式を使用する必要があります。

これは問題を引き起こす可能性があります。私は今午前例えば、それは15:17ですので、私が行うとき、これは:私の出力は

echo time(); 
echo "<br>"; 
echo strtotime(date('Y-m-d h:i:s')); 

です

1501010231 
1500967031 

しかしdate('Y-m-d h:i:s a')またはdate('Y-m-d H:i:s')を使用して、両方の意図した結果を与えるだろう値は同じです。

0

$ firstDate =新しい\のDateTime();

sleep(80);

$ secondDate = new \ DateTime();

$ interval = $ firstDate-> diff($ secondDate);

echo "日付の違いは:"です。 $ interval-> s。"\ n";

結果:日付の差がある:80