2011-07-07 17 views
1

私は、データベース内の2回ありますPHPタイム算術

$time1 = "02:00:03"; 
$time2 = "04:00:04"; 

を、私はそれらを追加したいがそれを行うための最善の方法は何か$time1 + $time2

私はこのような何かを行うことができますdiference原因には問題ありません:

$end = new DateTime($this->hora_final); 
$start = new DateTime($this->hora_inicio); 
$diff = $end->diff($start); 

$diff->format('%H:%I:%S'); 

、それが完璧に動作しますが...しかし、私はどんな...それらを追加する方法を見つけるように見えることはできませんアイデア?

ありがとうございます。

答えて

1

DateTime::add()です。 2つの日付を追加することは実際には意味がありません。$time2DateTimeとして扱うことはできません。time1に追加してください。通常、01.04. + 2 daysのようなものがありますが、01.04. + 02.00はありません。このメソッドは、タイプDateIntervalのオブジェクトを受け入れます。私は

list($hour, $min, $second) = explode(':', $time2); 
$interval = new DateInterval("PT{$hour}H{$min}M{$second}S"); 

のようなものを使用することをお勧め、それを作成するために今、あなたは、これまでに

$x = new DateTime($time1); 
$y = $x->add($interval); 

(未テスト)

+0

を間隔を追加することができるはず私は日付の部分は必要ありません。私はちょうどこのフォーマットH:m:sの時間に追加する必要があります – richardalberto

+0

ehm ... thats私が記述したもの:? (date-date = interval)(Matematical: 'x-y = z <=> x = z + y';) – KingCrunch

+0

これはまさにabout:' date + interval = date'と '' diff '私はコメントを投稿したときに変更を見たことがありません。:) list($ hour、$ min、$ second)= $ time2;リストのための ($時間、$分、$秒)=爆発( ":"、$時間2); – richardalberto