2013-05-11 106 views
0

我已閱讀過幾篇文章,但對於它的工作方式我還是有點困惑。與php的日期時間差異

我想比較2次。第一次是NOW的時間,第二次是來自數據庫的日期時間。我能夠在幾天,幾個月和幾年中獲得差異,但是當我嘗試獲取分鐘和秒鐘時,數字看起來不正確。

這裏是我得到以分和秒的時間代碼:

$date1 = date('Y-m-d H:i:s'); 
$date2 = $blah['datetime']; //the variable here is in dateTime format coming from the database 
$diff = abs(strtotime($date2) - strtotime($date1)); //Does this give the seconds? 
$mins = floor($diff/60); 

到目前爲止分鐘它返回像560,即使我添加了一行(對數據庫中的表)一分鐘前。也許我誤解了一些東西,或者錯過了一些東西。讓我知道你是否希望我澄清任何事情。謝謝!

+0

向我們展示'$ date1'和'$ date2'的值。 – deceze 2013-05-11 19:50:19

+0

$ date1和$ date2都具有相同的格式日期('Y-m-d H:i:s')。 $ date1是現在的日期(當前時間),$ date2是過去存儲的日期格式。你需要知道確切的日期和時間嗎? – tickerll 2013-05-11 19:54:01

+0

儘管如此,日期如下:$ date1 = 2013-05-11 21:55:19 $ date2 = 2013-05-11 12:49:12 – tickerll 2013-05-11 19:55:50

回答

0

這個計算對於PHP的DateTimeDateInterval類很容易。

$date1 = new \DateTime(); 
$date2 = \DateTime::createFromFormat('Y-m-d H:i:s', $blah['datetime']); 
$diff = $date1->diff($date2); // $diff is an Instance of DateInterval 

$mins = ($diff->days * 60 * 24) + ($diff->h * 60) + $diff->i;