我正在建立一个队列来生成一些东西,我想让用户可以看到它需要多长时间才能生成一代。
所以我估计生成一些东西所需的时间,但这是一个变量,因为它可以在5到120秒之间。现在我需要将变量时间添加到一天中的时间并进行循环,因为队列具有更多值。
所以我需要这个:
对象1 - 预计生成时间:15秒 - 09:00:15
对象2 - 估计生成时间:20秒 - 09:00:35
对象3 - 估计生成时间:10秒 - 09:00:45
等等..
我已经尝试过了:
$my_time = date('h:i:s',time());
$seconds2add = $estimated_time;
$new_time= strtotime($my_time);
$new_time+=$seconds2add;
echo date('h:i:s',$new_time);
和
$time = date("m/d/Y h:i:s a", time() + $estimated_time);
它循环,但两者都给我这样的输出:
对象1 - 预计生成时间:15秒 - 09:00:15
对象2 - 估计生成时间:20秒 - 09:00:20
对象3 - 估计生成时间:10秒 - 09:00:10
那么如何让它循环呢?
编辑:这是我的循环
$this_time = date('h:i:s',time());
$my_time = $this_time;
$num = 1;
foreach($orders as $order) {
echo '<tr>'
. '<td>'.($num++).'</td>'
. '<td>'. $order->url .'</td>'
. '<td>'. $order->product_desc .'</td>'
. '<td>'. $order->size .' cm</td>'
. '<td>'. $order->estimated_time .' sec</td>';
$seconds2add = $order->estimated_time;
$my_time= strtotime($my_time);
$my_time+=$seconds2add;
echo '<td>'. date('h:i:s',$my_time) . '</td>'
. '</tr>';
}
答案 0 :(得分:2)
显示您的循环代码可能会有所帮助,但以下是您应该做的一般概念:
$current_time = time(); // seconds since unix epoch
echo 'Start: ' . date('h:i:s') . PHP_EOL;
while($you_do_stuff == true) {
// do stuff
$now = time();
$time_taken = $now - $current_time;
echo $time_taken . ' seconds to process: ' . date('h:i:s', $now) . PHP_EOL;
// set current time to now
$current_time = $now;
}
echo 'Finished: ' . date('h:i:s');
编辑:这是一个以秒为单位随机“估计时间”的示例:
// ... in seconds
$estimated_times = array(
5,
20,
35,
110
);
$current_time = time(); // seconds since unix epoch
echo 'Start: ' . date('h:i:s') . PHP_EOL;
foreach($estimated_times as $estimated_time) {
// add estimated time to current time (this increases each loop)
$current_time += $estimated_time;
// output estimated time and finish time
echo 'Estimated time: ' . $estimated_time . ' seconds: ' . date('h:i:s', $current_time) . PHP_EOL;
}