-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 回答