可能数据> 3如果有更改/更新。
如何设置放置日期(昨天/今天)的逻辑, 签入时(当前)我发送了2个参数
示例我出现在2020-09-04 01:24。 日期上有1个数据班次必须不同
我想用这样的日期设置班次。
时间:2020-09-03 22:00
超时时间:2020-09-04 02:00
这是我的代码
<?php
$date = '2020-09-03';
$time = '01:50';
$arr = [];
$data_1 = array(
'time_in' =>'04:00',
'time_out'=>'10:00');
$data_2 = array(
'time_in' =>'12:00',
'time_out'=>'21:00');
$data_3 = array(
'time_in' =>'22:00',
'time_out'=>'02:00');
$arr[] = $data_1;
$arr[] = $data_2;
$arr[] = $data_3;
$new_data = [];
foreach($arr as $v){
$time_in = $v['time_in'];
$time_out = $v['time_out'];
$push_with_date = array(
'time_in' =>$time_in,
'time_out'=>$time_out);
$new_data[] = $push_with_date; // i want push time with date
}
echo "<pre>";
print_r($new_data);
echo "</pre>";
?>
帮我谢谢
答案 0 :(得分:1)
我为您编写了代码。 请检查逻辑。
function changeHour($time) {
$times = explode(":", $time);
return (count($times) > 1) ? intval($times[0]) * 60 + intval($times[1]) : intval($times[0]) * 60;
}
function is_yesterday($time1, $time2) {
if (changeHour($time1) <= changeHour($time2)) {
return false;
}
return true;
}
$date = '2020-09-03';
$time = '01:50';
$ydate = date("Y-m-d",strtotime($date) - 86400);
$arr = [];
$data_1 = array(
'time_in' =>'04:00',
'time_out'=>'10:00');
$data_2 = array(
'time_in' =>'12:00',
'time_out'=>'21:00');
$data_3 = array(
'time_in' =>'22:00',
'time_out'=>'02:00');
$arr[] = $data_1;
$arr[] = $data_2;
$arr[] = $data_3;
$new_data = [];
foreach($arr as $v){
$time_in = $v['time_in'];
$time_out = $v['time_out'];
if (is_yesterday($time, $time_out)) {
$time_in = "$ydate $time_in";
$time_out = "$ydate $time_out";
} else {
if (is_yesterday($time_in, $time_out)) {
$time_in = "$ydate $time_in";
} else {
$time_in = "$date $time_in";
}
$time_out = "$date $time_out";
}
$push_with_date = array(
'time_in' =>$time_in,
'time_out'=>$time_out);
$new_data[] = $push_with_date; // i want push time with date
}
echo "<pre>";
print_r($new_data);
echo "</pre>";