循环内增加时间15分钟
问题描述:
我想创建一个下拉菜单,将当前时间作为开始时间,并且最终会持续到24小时,就像直到24小时之后一样,它会显示每15分钟增量的时间。问题是,当我尝试运行循环开始时间是好的,但下一个循环时间跳转到6小时后。循环内增加时间15分钟
这里是我的代码:
$current_time = date('h:i A');
$end_hour = date("+24 hours", $current_time);
echo "<option>" . $current_time . "</option>";
for($i = 0; $i <= 96; $i++) {
echo "<option>" . date("h:i A", $tNow) . "</option>";
$tNow = strtotime('+15 minutes',$current_time);
}
输出来作为 下午11时08 4:00 PM 4:15 PM 4:30 PM
等。
答
您可以使用DateTime为:
$now = new DateTime();
$end = clone $now;
$end->modify("+24 hours");
while ($now <= $end) {
echo "<option>" . $now->format('h:i A'). "</option>";
$now->modify('+15 minutes');
}
答
有几件事。首先在你的第一行你缺少第二个参数。那么你正在使用$ tNow未定义。
$current_time = date('h:i A', time());
$end_hour = date("+24 hours", strtotime($current_time));
$tNow = strtotime($current_time);
echo "<option>" . $current_time . "</option>";
for($i = 0; $i <= 96; $i++) {
echo "<option>" . date("h:i A", $tNow) . "</option>";
$tNow = strtotime('+15 minutes', $tNow);
}
+0
第二个参数是可选。如果没有给出,则使用当前日期。 –
+0
@Matei Mihai谢谢你忘记了! – Gacci
greta它为我工作,但什么是克隆? –
使用[clone](http://php.net/manual/en/language.oop5.cloning.php),您可以复制实例化对象而不保留引用,因此对克隆对象所做的任何更新都不会影响原始一。 –