我使用的是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