2010-06-20 66 views
3

我有點卡在PHP的DateInterval類。我真正想要的是兩張DateTime郵票之間經過的秒數。php:日期時間算術

$t1 = new DateTime("20100101T1200"); 
$t2 = new DateTime("20100101T1201"); 
// number of seconds between t1 and t2 should be 60 

echo "difference in seconds: ".$t1->diff($t2)->format("%s"); 

然而,我所得到的是零。 DateInterval類不適合算術嗎?如何可以我得到兩個時間戳之間的「確切」秒數(或小時,或其他)?

+0

我想看看你如何得到確切的數字超過幾天。 – 2010-06-20 11:56:07

回答

9

如果你只想秒快速您可能藏漢使用

$diff = abs($t1->getTimestamp() - $t2->getTimestamp()); 

你的代碼返回0,因爲實際差爲0,在你的例子不同的是1分鐘(1分鐘,0秒)。如果您打印格式,您將得到1,這是$t1$t2的正確差異。

+0

謝謝!我對類型安全的DateInterval非常滿意:你不能添加任何東西,除了那個'DateTime',這很好。但是這個伎倆。 (在PHP 5.2上,您可以使用'DateTime :: format(「U」)'來檢索自時代以來的秒數) – xtofl 2010-06-21 08:06:40

+0

很高興能夠提供幫助,我很高興看到在生產中使用PHP 5.3的人員:) – 2010-06-21 08:08:22