我必须编写一个循环,它应该在两次之间开始和结束。我知道有很多方法可以剥离这只猫的皮肤,但我希望看到一个真正的程序员来实现这个功能。
例如,我有星期三,下午6:00开门,晚上10:30关门。
我正在编写一个循环,它将给我一个表,其中包含15分钟间隔内这两个时间之间的所有时间。
因此,我基本上想构建一个单列表,其中每一行都是
6:00pm
6:15pm
7:15pm等等。
我提供给这个函数的两个变量是打开时间和关闭时间。现在不要指责我“为我写代码”的帖子。我会很高兴给你我的黑客解决方案的要求,我只是想看看有真正经验的人会如何创建这个函数。
谢谢:)
发布于 2011-08-19 02:45:27
$start = new DateTime("2011-08-18 18:00:00");
$end = new DateTime("2011-08-18 22:30:00");
$current = clone $start;
while ($current <= $end) {
echo $current->format("g:ia"), "\n";
$current->modify("+15 minutes");
}在Codepad上试试:http://codepad.org/JwBDOQQE
发布于 2011-08-19 03:06:11
PHP5.3正是为此引入了一个类DatePeriod。
$start = new DateTime("6:00pm");
$end = new DateTime("10:30pm");
$interval = new DateInterval('PT15M');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $time) {
echo $time->format('g:ia'), PHP_EOL;
}
echo $end->format('g:ia'); // end time is not part of the period发布于 2011-08-19 02:44:53
$start = strtotime('2011-08-11 18:00:00');
for ($i = 0; $i < 20; $i++) {
echo date('g:ia', $start + ($i * (15 * 60))), '<br>';
}https://stackoverflow.com/questions/7112439
复制相似问题