首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP填充两次之间的间隔

用PHP填充两次之间的间隔
EN

Stack Overflow用户
提问于 2011-08-19 02:41:27
回答 5查看 1.1K关注 0票数 3

我必须编写一个循环,它应该在两次之间开始和结束。我知道有很多方法可以剥离这只猫的皮肤,但我希望看到一个真正的程序员来实现这个功能。

例如,我有星期三,下午6:00开门,晚上10:30关门。

我正在编写一个循环,它将给我一个表,其中包含15分钟间隔内这两个时间之间的所有时间。

因此,我基本上想构建一个单列表,其中每一行都是

代码语言:javascript
复制
6:00pm
6:15pm
7:15pm

等等。

我提供给这个函数的两个变量是打开时间和关闭时间。现在不要指责我“为我写代码”的帖子。我会很高兴给你我的黑客解决方案的要求,我只是想看看有真正经验的人会如何创建这个函数。

谢谢:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-19 02:45:27

代码语言:javascript
复制
$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

票数 5
EN

Stack Overflow用户

发布于 2011-08-19 03:06:11

PHP5.3正是为此引入了一个类DatePeriod

代码语言:javascript
复制
$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
票数 4
EN

Stack Overflow用户

发布于 2011-08-19 02:44:53

代码语言:javascript
复制
$start = strtotime('2011-08-11 18:00:00');

for ($i = 0; $i < 20; $i++) {
   echo date('g:ia', $start + ($i * (15 * 60))), '<br>';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7112439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档