我怎样才能循环$ interval的时间间隔

时间:2013-06-14 08:10:28

标签: php

我尽我所能,但无法提出解决方案....我怎么能循环时间的$间隔....

以下是我的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
    }

1 个答案:

答案 0 :(得分: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
    )