2017-05-22 47 views
0

私は単純なタスクのように見えますが、私は問題を解決することはできません。私はPHP($ time + $ time1)で秒数を2回カウントしたいが、私の結果は+ 1時間(+ 1day)です。どうして?PHP秒でカウント時間

$hours="00"; 
$minutes="34"; 
$seconds="13"; 

$hours1="00"; 
$minutes1="35"; 
$seconds1="11"; 

$time=($hours*3600)+($minutes*60)+$seconds; // 2053 seconds 
$time1=($hours1*3600)+($minutes1*60)+$seconds1; // 2111 seconds 

$sum=$time+$time1; // 4164 seconds 

$format=date('H:i:s', $time); // 01:34:13 
$format1=date('H:i:s', $time1); // 01:35:11 
$formatsum=date('H:i:s', $sum); // 02:09:24 

$形式はなければならない:34:13ない:34:13
私は日の日付(」:I:DのH S'、$時間)を追加した場合。結果は、 です:34:13
私のタスクは結果1時09分24秒ないと午後12時34分13秒+夜12時35分11秒である:09:24
ドIと間違って何かタイムフォーミング?なぜそれが私に+ 1日と+ 1時間を与えるのか?

+0

[日付](http://php.net/manual/en/function.date.php)の2番目のパラメータはタイムスタンプです。秒だけです。 –

+0

@モハマドハメダニタイムスタンプの意味は?あなたは知っていますか ? –

+0

タイムスタンプは、1970年1月1日00:00:00 UTCからの秒数であるUnixタイムスタンプを意味します。しかし、私はあなたのコードをテストし、それは2番目の作業です!私はあなたの質問に答えます。 –

答えて

0

変更し、このために:

$format=date('H:i:s', $time); // 01:34:13 
$format1=date('H:i:s', $time1); // 01:35:11 
$formatsum=date('H:i:s', $sum); // 02:09:24 

へ:

$format=gmdate('H:i:s', $time); // 00:34:13 
$format1=gmdate('H:i:s', $time1); // 00:35:11 
$formatsum=gmdate('H:i:s', $sum); // 01:09:24 

gmdate - GMT/UTCの日付/時間をフォーマット

php doca gmdate

0

デフォルトのタイムゾーンがUTC +1に設定されているため、結果は01:34:13です。代わりに、あなたはUTCの日付にタイムスタンプを変換したい場合はdate()の 利用gmdate()機能:また

$hours = "00"; 
$minutes = "34"; 
$seconds = "13"; 

$hours1 = "00"; 
$minutes1 = "35"; 
$seconds1 = "11"; 

$time = ($hours * 3600) + ($minutes * 60) + $seconds; // 2053 seconds 
$time1 = ($hours1 * 3600) + ($minutes1 * 60) + $seconds1; // 2111 seconds 

$sum = $time + $time1; // 4164 seconds 

$format = gmdate('H:i:s', $time); // 00:34:13 
$format1 = gmdate('H:i:s', $time1); // 00:35:11 
$formatsum = gmdate('H:i:s', $sum); // 01:09:24 

、私はあなたのコードでは達成したいのかわからないんだけど、日付のためのより良いツールがあります/手作業による秒数の加算よりも時間の操作が容易です。 PHP標準ライブラリのDateTimeDateIntervalクラスをご覧ください。

+0

私はあなたの答えを正確に感じているので、upvotedでも、あなたの答えに応じてOPの更新コードを与えるべきです –

1

タイムゾーンを確認する必要があります。計算された時間はあなたの現地時間帯です。一例として、+ 2GMTについては

$time=($hours*3600)+($minutes*60)+$seconds; // 2053 seconds 
$format=date('H:i:s', $time); // 02:34:13 

関連する問題