1. ホーム
  2. date

カーボン 2つの日付間の時間差(hh:mm:ss 形式)。

2023-08-07 23:59:36

質問

データベースに格納されている2つの日付時刻文字列を、hh:mm:ssという時間形式の差に変換する方法を考えています。

を調べました。 diffForHumans のような形式を返します。 after , ago など。これは便利ですが、私がやろうとしていることには向いていません。

持続時間は決して日単位ではなく、最大でも数時間です。

$startTime = Carbon::parse($this->start_time);
$finishTime = Carbon::parse($this->finish_time);

$totalDuration = $finishTime->diffForHumans($startTime);
dd($totalDuration);

// Have: "21 seconds after"
// Want: 00:00:21

どのように解決するのですか?

結局、Carbonを使って合計秒数の差をつかむことにしました。

$totalDuration = $finishTime->diffInSeconds($startTime);
// 21

次に gmdate :

gmdate('H:i:s', $totalDuration);
// 00:00:21

もし誰かがより良い方法を知っているなら、私は興味があります。 そうでなければ、これは動作します。