3

次のコードがあります。値を 2 つの時間 (現在 + 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 から差し引くことです。結果は、2 つの時刻の間の秒数になります。

次に、秒数を入力ファイルの合計行数で割り、各値の間の合計秒数を求めます。最後に、この数値を既存の $calltime 変数に追加して、ループの反復ごとに新しい時間が追加されるようにします。

しかし、私が持っているものは機能しません。日付の計算はいつも私を混乱させますが、PHP では二重に混乱します。さらに情報が必要な場合は、お知らせください。

4

1 に答える 1

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));
于 2012-12-11T17:09:59.403 に答える