我有一个时间戳格式的开始和结束时间.我想把它们分成1小时的时间段.
$t1 = strtotime('2010-05-06 12:00:00'); $t2 = strtotime('2010-05-06 18:00:00'); $timeslots = array(); while ($t1 < $t2) { $t1 = $t1 + 3600; $timeslots[] = $t1; } foreach ( $timeslots as $slot ) { echo date("Y-m-d H:i:s",$slot) . '<br/>'; }
偶尔尝试使用不同长度时间段的其他数字时会出现致命错误:允许的内存大小耗尽,这让我认为它不是很有效.虽然现在似乎没有发生……
(我正在建立一个预订系统)
你有没有尝试过
while ($t1 < $t2) { $t1 = strtotime('+1 hour',$t1); $timeslots[] = date('Y-m-d H:i:s',$t1); } foreach ( $timeslots as $slot ) { echo $slot . '<br/>'; }
有点相同但更清洁.正如所说,strtotime将处理像闰年这样的日期变化.你的PHP内存限制是多少?可能太低了.