2016-11-09 8 views
3

私は、date_diffプロシージャを使用して、2つのDateTimeオブジェクトの異なる計算を使用するPHPコードを持っています。時には結果は否定的ですが、常に正の値を示します。PHP - date_diff否定結果?

コード例:

$time1 = new DateTime('01:00:00'); 
    $time2 = new DateTime('02:00:00'); 
    $resultTime = date_diff($time1, $time2); 
    echo "RESULT: ".$resultTime->format('%H:%i:%s'); 

表示:

1時00分00秒

、正しいは次のようになります。

-01:00:00

ですそれは否定的または肯定的な「本当の」結果を示すことが可能ですか?

ありがとうございます!

+1

'$ resultTime-> invert'を見てください。差分が負の場合は1を返し、正の場合は0を返します。残念ながら、それは公式のPHP文書では文書化されていません。 –

+0

ここに書かれています。http://php.net/manual/en/datetime.diff.php – krasipenkov

+0

別の方法 - ($ time1 <$ time2?$ sign = ' - ':$ sign = ''); $ resultTime = date_diff($ time1、$ time2); ' – Blinkydamo

答えて

4

$resultTime->format('%r%H:%i:%s');はあなたが探しているものです。 %rは、差がマイナスの場合はマイナス記号を、プラスの場合はマイナス記号を出力します。 $resultTime->invertを使用することもできます。差異が負の場合は1になります。

+0

少し質問があります。私は、$ resultTimeにマイナス符号または正値が必要です。しかし、この値では、新しいオブジェクトDateTimeを作成しなければなりません。負の場合、エラーメッセージが表示されます。 – ruzD

+0

私はあなたの質問を完全に理解しているか分からない。差が負の場合にエラーメッセージを表示する必要がありますか?もしそうなら、あなたは 'if($ resultTime-> invert == 1){...}'のようなことをする必要があります。 –