2016-05-12 9 views
1

私は次のコードを別のものに基づいてDateTimeオブジェクトを作成すると、非効率的だと思われる。これを1行に簡略化する方法があると確信していますが、見つけられないようです。 PHP7で別のものの30分後にdateTimeオブジェクトを作成する最も良い方法は?

$startTime = new DateTime('20:00'); 
    $endTime = clone $startTime; 
    $endTime->add(new DateInterval('PT30M')); 
+0

は「20:00」分と秒ですか? –

+0

@PedroLobito時間と分です。その部分は正常に動作します。上記のコードは動作します。私はそれを最適化するためのよりよい方法があると考えています。 – Desquid

+0

私は正直言って、改善の余地はありません。これであなたの目標を説明すれば、それは私たちを助けるかもしれません。 –

答えて

4

を探しているあなたは、単に行うためにDateTimeImmutableを使用することができますすることができます非常に簡単に:

$startTime = new DateTimeImmutable('20:00'); 
$endTime = $startTime->add(new DateInterval('PT30M')); 

参照:http://php.net/manual/en/class.datetimeimmutable.php

このクラスはDateTimeと同じように動作しますが、変更されることはありませんが、代わりに新しいオブジェクトを返します。

+0

驚くばかり!ありがとう!私は良い方法がなければならないことを知っていました。 – Desquid

+0

これは知っていると便利です –

2

あなたはクローンを組み合わせ、

$startTime = new DateTime('20:00'); 
$endTime = (clone $startTime)->add(new DateInterval('PT30M')); 

を使用してメソッドを追加しますが、PHP 5のために、あなたが最も効率的なアプローチで

+0

それは心配しています。ありがとう、私が探していた答えでした! – Desquid

関連する問題