1
當我從日期時間對象中減去1天時,它按照它應該的那樣做,它會減去一天。但如果我使用diff()來比較2個日期時間對象,它會再次減去這一天。您可以在下面的代碼示例,請參閱:使用php日期時間對象的奇怪行爲 - 第二次調用diff時從日期中減去()
$currTime = new DateTime();
$lastPurge = new DateTime("14:33");
$lastPurge->sub(new DateInterval("P1D"));
echo $lastPurge->format("d/m/Y H:i:s\n\n");
$diff = $currTime->diff($lastPurge);
echo $lastPurge->format("d/m/Y H:i:s\n\n");
從代碼的輸出是:
10/11/2010 14時33分00秒
09/11/2010 14: 33:00
正如你所看到的,在調用sub()後,它已經減去了1天,如預期的那樣。但是,在使用diff()之後,它會減去另一天。爲什麼在使用diff()計算差異之後再減去另一天?它應該這樣做嗎?
也許這是我使用的PHP版本中的一個錯誤。我已經在Windows上使用澳大利亞/ Broken_Hill時區和PHP 5.3.2在Mac OS X(同一時區)上使用php 5.3.1進行了試用。我會嘗試構建最新的PHP版本,看看是否能修復它。 – Yoshi 2010-11-11 04:47:32
謝謝!現在構建最新的PHP版本。我認爲留在版本之上是值得的。 – Yoshi 2010-11-11 05:36:35