我尽我所能,但无法提出解决方案....我怎么能循环时间的$间隔....
以下是我的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
}
答案 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
)
)