2016-11-09 38 views
3

我有一個php代碼使用date_diff過程來計算不同的兩個DateTime對象。有時結果是負面的,但總是顯示積極的。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'); 

顯示:

01: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){...}'。 –