-1

私はできる限りのことを試しましたが、解決策を思いつくことができませんでした....時間の$intervalをループするにはどうすればよいですか....

これが私の CodeIgniter コントローラの関数です:

  public function calculate_time_lap() {
        $formate = "%h:%i";
        $in = $this->input->post('checkin');

        foreach ($in as $checkin) {
            $datetime1 = date_create($checkin);
        }

        $out = $this->input->post('checkout');
        foreach ($out as $checkout) {
            $datetime2 = date_create($checkout);
        }

        $interval = date_diff($datetime2, $datetime1);
        $times = $interval->format($formate);

        echo $this->add_time($times);
        //add_time is function to add array value of time
    }
4

1 に答える 1

0

チェックインとチェックアウトには日時の配列が必要です。

$in = $this->input->post('checkin');
foreach ($in as $checkin) {
    $datetime_array1[] = date_create($checkin);
}

$out = $this->input->post('checkout');
foreach ($out as $checkout) {
    $datetime_array2[] = date_create($checkout);
}

次に、それらのそれぞれについて、間隔を配列に設定します。

foreach ($datetime_array1 as $key => $datetime1) {
    $datetime2 = $datetime_array2[$key];
    $interval[] = date_diff($datetime2, $datetime1);
}

あなたの入力が正しいかどうかわからないので、それが何をするかのサンプルをあげます:

$datetime_array1[] = date_create('2000-01-01');
$datetime_array1[] = date_create('2000-01-02');
$datetime_array1[] = date_create('2000-01-03');

$datetime_array2[] = date_create('2000-02-01');
$datetime_array2[] = date_create('2000-03-02');
$datetime_array2[] = date_create('2000-04-03');

foreach ($datetime_array1 as $key => $datetime1) {
    $datetime2 = $datetime_array2[$key];
    $interval[] = date_diff($datetime2, $datetime1);
}

echo '<pre>' . print_r($interval, TRUE) . '</pre>';

戻り値 :

Array
(
[0] => DateInterval Object
    (
        [y] => 0
        [m] => 1
        [d] => 0
        [h] => 0
        [i] => 0
        [s] => 0
        [invert] => 1
        [days] => 31
    )

[1] => DateInterval Object
    (
        [y] => 0
        [m] => 2
        [d] => 0
        [h] => 0
        [i] => 0
        [s] => 0
        [invert] => 1
        [days] => 60
    )

[2] => DateInterval Object
    (
        [y] => 0
        [m] => 3
        [d] => 0
        [h] => 0
        [i] => 0
        [s] => 0
        [invert] => 1
        [days] => 91
    )

)

于 2013-06-14T09:31:53.227 に答える