2014-07-16 19 views
0

我们使用DateTime循环查看一周中的所有日期并在每一天检索数据。我想要做同样的事情,除了获得过去24小时的每个小时范围。下面是我们对每周的天:PHP按小时增加

$end = new DateTime(); 
$begin = new DateTime(); 
$begin->sub(new DateInterval("P7D")); 
$interval = new DateInterval('P1D'); 
$daterange = new DatePeriod($begin, $interval ,$end); 
foreach($daterange as $date){ 
    $date1=$date->format('Y-m-d')." 00:00:00"; 
    $date2=$date->format('Y-m-d')." 23:59:59"; 
} 

我明白P7D和P1D都在做,但如何让我在小时等同?我找不到在php.net

+0

http://php.net/manual/en/dateinterval.construct.php – zerkms

+0

怎么样'PT1H'? – Raptor

回答

0

的文档状态:

格式开头字母P,为 “时期”。每个持续时间段由一个整数值表示,后跟一个句点指示符。如果持续时间包含时间元素,则该规范的该部分是,前面是字母T

有了这些信息,一个小时的时间间隔规格应该是:

PT1H 
+0

是的,我错过了T.谢谢! – KRay

1

DateInterval::__construct

期间代号是下面这些任何地方的文档。

Y years 
M months 
D days 
W weeks. can not be combined with D. 
H hours 
M minutes 
S seconds 

如果您需要一个例子,PHP.net有周期指示器和日期字符串之间的few comparisons