我使用的是zend框架,我想知道兩個日期之間的小時差異。 我知道如何在覈心php中使用strtotime來完成它。小時Zend中的兩個日期之間的差異
但我想在Zend,如果可能的話。
例:這是我的日期時間格式日期:
2011-04-13 23:00:00
2011-04-14 15:45:00
我使用的是zend框架,我想知道兩個日期之間的小時差異。 我知道如何在覈心php中使用strtotime來完成它。小時Zend中的兩個日期之間的差異
但我想在Zend,如果可能的話。
例:這是我的日期時間格式日期:
2011-04-13 23:00:00
2011-04-14 15:45:00
似乎有一個sub()
方法Zend_Date
:
sub($date, $part = null, $locale = null)
減去 當前對象的日期有一個區域$locale
的$part
$date
。
使用Zend_Date::HOUR
爲$一部分應該做的伎倆,我想:
$num_month = $firstDate->sub($secondDate, Zend_Date::HOUR);
作爲一個旁註:與strtotime()
工作時,日期使用UNIX Timestamps reprensented - 這隻能從1970年去到2038年(在32位系統上,至少)
它可能會更聰明的與DateTime
類一起工作,其中低於一個來操縱(虛擬)無限範圍的日期。
爲什麼你想在Zend有這樣的功能,當你可以用核心PHP來做這件事情?
只需使用核心PHP。
我想使用Zend爲此目的,我希望存在一些實現此功能的功能......但在覈心php中,它始終保持優良和簡單。 – 2011-04-13 12:20:58
那麼爲什麼人們在那裏發明了框架?讓我們的生活更輕鬆,我是對嗎? – tawfekov 2011-04-13 12:24:40
但是,你不會期望在框架中有相當的回聲。簡單的計算總是可以在覈心中執行 – 2011-04-13 12:29:08
謝謝,我會達成一個解決方案是這樣的:
$firstDay = new Zend_Date('2011-04-13 23:00:00', 'YYYY-MM-DD h:i:s');
$lastDay = new Zend_Date('2011-04-14 15:45:00', 'YYYY-MM-DD h:i:s');
$diff = $lastDay->sub($firstDay)->toValue();
$days = ceil($diff/60/60);
最後我能得到17小區值,但無法得到確切的差異(16小時,45分鐘)
,所以它會發揮巨大的性能問題。儘管我們將不得不創建Zend_Date的對象。你總是有答案MARTIn :-) – 2011-04-13 12:25:02
那麼,如果你正在使用Zend_Date,你應該使用Zend_Date方法;如果不與Zend_Date一起工作,當然...使用別的東西;-) *(並不總是^^)* – 2011-04-13 12:26:01