对于循环递增时间45分钟

时间:2012-12-04 13:22:21

标签: php for-loop

我知道我可以像这样整个整数进行正常循环

for($i=0;$i<10;$i++)
{
   echo $i;
}

问题:
我想循环一个循环而不是整数,但是浮动次(45分钟)。我希望结果如下:

0.45
1.30
2.15
3.00
3.45
...

PHP中是否有任何辅助函数来实现?

7 个答案:

答案 0 :(得分:12)

阅读评论并发现您确实想要使用时间,您甚至可以在for循环中使用DateTime对象

以下是一些示例代码:

for (
    $d = new DateTime('00:00'), // Initialise DateTime object .
    $i = new DateInterval('PT45M'); // New 45 minute date interval
    $d->format('H') < 10; // While hours (24h) less than 10
    $d->add($i) // Add the interval to the DateTime object
)
{
    echo $d->format("H:i\n");
}

答案 1 :(得分:2)

你可以简单地在循环中使用浮点数。循环的最后部分中的$i++表示将计数器递增1。只需将其更改为0.45,即可完成。

for($i=0;$i<10;$i=$i + 0.45)
{
   echo $i;
}

//编辑

正如许多人所指出的,浮点精度存在固有问题。上面的示例应该适用于小数字$i < 100,但是当数字变大时可能会出现问题。

答案 2 :(得分:1)

for($i=0;$i<10;$i += 0.45)
{
   echo $i;
}

这样的事情?

答案 3 :(得分:0)

我不会依赖浮点数。理由是四舍五入。

您通常使用的是int,然后除以。

for($i=0, $j=0; $i < $MAX; $i += 45, $j = $i / 100)
{
    echo $j;
}

答案 4 :(得分:0)

您可以简单地使用

for($i=0.0;$i<10.0;$i=$i+0.45)
{
   echo $i;
}

答案 5 :(得分:0)

我不确定我是否会使用浮点值来控制循环本身,特别是考虑到它们不精确的倾向: - )

由于您似乎考虑了公式,因此您只需在循环中使用公式:

for ($i = 0; $ < 10; $i++) {
   $num = 0.45 + $i * 0.85;
   echo $num;
}

这允许使用整数控制循环,并简单地为您提供基于该整数的浮点值。

答案 6 :(得分:-1)

也许是这样的:

for ($i=1; $i<=10; $i++) {
    echo $i * 0.45."<br />";
}