两次均匀分布值

时间:2012-12-11 14:53:41

标签: php datetime

我有以下代码。我需要在两次之间平均分配价值:现在+ 20分钟到15:30。以下代码是循环的一部分,为简洁起见,我没有包含它。

$numlines = count($data);

$calltime = date('U', strtotime('+20 minutes');

$to = date('U', strtotime('15:30'));
$from = $calltime;

$diffinsec = $to - $from;

$apptseparation = ceil($diffinsec / $numlines);

$calltime = date('H:i', strtotime('+' . $apptseparation . ' seconds', $calltime);

我在这里要做的是将当前时间加上20分钟,将其转换为Unix时代,并在同一天的15:30减去它。结果应该是两次之间的秒数。

然后我想将秒数除以输入文件中的总行数,得出每个值之间的总秒数。最后,我想将这个数字添加到现有的$ calltime变量中,这样循环的每次迭代都会添加新的时间。

但我所拥有的不起作用。日期数学总是让我感到困惑,而且在PHP中也是如此。如果您需要更多信息,请告诉我们!

1 个答案:

答案 0 :(得分:0)

那么,你得到的结果和期望的结果是什么? 如果我很好理解,这段代码似乎有效:     

    $calltime = strtotime('+20 minutes');
    $from = $calltime;
    $to = strtotime('15:30');

    $diffinsec = $to - $from;
    if ( $diffinsec < 0 ) { // If it is 18:04 per example
        $diffinsec *= -1;
    }
    $apptseparation = ceil($diffinsec / $numlines);

    $calltime = date('H:i', strtotime('+'.$apptseparation.' seconds', $calltime));