我花了很多时间试图弄清楚如何创建一个循环,该循环将在给定的 $start_time 和 $end_time 之间以 HH:MM 格式将时间增加一小时。例如,如果我有 $start_time = "09:00" 和 $end_time="15:00" 输出应该是这样的:
09:00
10:00
11:00
12:00
13:00
14:00
15:00
知道怎么做吗?我知道我应该使用 php 时间戳和 strtotime 等,因为我从未使用过它们,所以我无能为力,请帮助...
你可以用 mktime()
$start = 7;
$end = 15;
for ($time = $start; $time <= $end; $time++) {
echo date("H:00", mktime($time+1)).'<br>';
}
只是为了好玩,这是另一个例子
foreach(range(intval('07:00:00'),intval('16:00:00')) as $time) {
echo date("H:00", mktime($time+1)).'<br>';
}
如果你只是想要echo
时代,你可以做一些简单的事情:
$start_time = 9;
$end_time = 15;
for ($time = $start_time; $time <= $end_time; $time++) {
if ($time < 10)
echo "0";
echo $time . ":00\n";
}
$start_time = "15:49";
$hours = 9;
list($h, $m) = explode(':', $start_time);
while ($hours-->0)
{
echo $h++ . ":" . $m . "\n";
}
$interval = date_interval_create_from_date_string('1 hour');
$begin = date_create('09:00');
$end = date_create('15:00')->add($interval);
foreach (new DatePeriod($begin, $interval, $end) as $dt) {
echo $dt->format('H:i') . "\n";
}
演示:
自从我编写 PHP 代码以来已经有一段时间了,但请查看此链接。
注意我在编辑问题之前发布了这个。
while($starttime < $endtime)
{
echo $starttime;
$starttime = date_add($starttime, date_interval_create_from_date_string('1 hour'));
}