web-dev-qa-db-ja.com

PHPの2つのタイムスタンプの差を計算します

私のテーブルでは、starttime datatype- timestampと現在のタイムスタンプとして2つのタイムスタンプを使用しています。 endtime datatype-timestampおよびデフォルトは0000-00-00 00:00:00

php starttime:2016-11-30 03:55:06 endtimetime:2016-11-30 11:55:06の2つのタイムスタンプの差を計算する方法

14
user6582683

手続き的な方法は避けてください。 OOP日付と時刻の差の方法:

$datetime1 = new DateTime('2016-11-30 03:55:06');//start time
$datetime2 = new DateTime('2016-11-30 11:55:06');//end time
$interval = $datetime1->diff($datetime2);
echo $interval->format('%Y years %m months %d days %H hours %i minutes %s seconds');//00 years 0 months 0 days 08 hours 0 minutes 0 seconds

必要に応じて差分形式を設定できます。

%Y - use for difference in year
%m - use for difference in months
%d - use for difference in days
%H - use for difference in hours
%i - use for difference in minutes
%s - use for difference in seconds

必要に応じて、上記の値を削除できます。たとえば、時差にのみ関心があり、差が24時間を超えることができないことがわかっている場合は、%H

秒単位で合計差を取得する場合は、次を使用できます。

echo $difference_in_seconds = strtotime('2016-11-30 11:55:06') - strtotime('2016-11-30 03:55:06');//28800

ニーズと、時差を持たせる最終形式によって異なります。

参考チェック: http://php.net/manual/en/datetime.diff.php

それが役立つことを願っています

20
Learner

Php strtotimeを使用してタイムスタンプをUNIXタイムスタンプ(秒単位の時間)に変換し、その差を取得できます。秒単位の時間差があり、必要なものに変換できます...時間、分、日

http://php.net/manual/en/function.strtotime.php

例:

$ts1 = strtotime($start);
$ts2 = strtotime($end);     
$seconds_diff = $ts2 - $ts1;                            
$time = ($seconds_diff/3600);
8
bio_sprite

最も簡単な答えは(もちろん私にとって) ここ です

function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
    $datetime1 = date_create($date_1);
    $datetime2 = date_create($date_2);

    $interval = date_diff($datetime1, $datetime2);

    return $interval->format($differenceFormat);

}

この場合、date_create()関数はDateTimeオブジェクトを作成します

0
AlexKh

phpfiddle.orgでテストされたこのコードを試してください:-

function timestampdiff($qw,$saw)
{
    $datetime1 = new DateTime("@$qw");
    $datetime2 = new DateTime("@$saw");
    $interval = $datetime1->diff($datetime2);
    return $interval->format('%Hh %Im');
}
echo timestampdiff('1524794340', '1524803100');
0
Praveen Bhagat