私のテーブルでは、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つのタイムスタンプの差を計算する方法
手続き的な方法は避けてください。 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
それが役立つことを願っています
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);
最も簡単な答えは(もちろん私にとって) ここ です
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オブジェクトを作成します
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');