>

여기에서start_datedue_date및이 값을 사용하는 일부 변수는 다차원 배열을 만들어야합니다. 시작 날짜는 2018-01-01 입니다.  종료일 2018-01-03  해당 날짜와 함께 3 회 반복해야 함을 의미합니다.

내 변수

$start_date = "2018-01-01";
$start_time = "01:30 PM";
$due_date="2018-01-03";
$due_time = "11:30 AM"
$project="10001";
$assign_to="G2E0357";

예상되는 결과

Array
(
    [0] => Array
        (
            [allocation_date] => 2018-01-01
            [t_project] => 10001
            [t_assign_to] => G2E0357
            [t_start_time] => 01:30 PM
            [t_end_time] => 11:30 AM
        )
    [1] => Array
        (
            [allocation_date] => 2018-01-02
            [t_project] => 10001
            [t_assign_to] => G2E0357
            [t_start_time] => 01:30 PM
            [t_end_time] => 11:30 AM
        )
    [2] => Array
        (
            [allocation_date] => 2018-01-03
            [t_project] => 10001
            [t_assign_to] => G2E0357
            [t_start_time] => 01:30 PM
            [t_end_time] => 11:30 AM
        )
)


  • 답변 # 1

    코드댓글의 언급과 같은 몇 가지 단계를 통해 수행 할 수 있습니다 :

    date_default_timezone_set('UTC');
    $start_date = "2018-01-01";
    $start_time = "01:30 PM";
    $due_date="2018-01-03";
    $due_time = "11:30 AM";
    $project="10001";
    $assign_to="G2E0357";
    $glopal_array = array();
    $data_array = list_days(strtotime($start_date),strtotime($due_date));// get all days in array
    foreach($data_array as $item) {//loop in day array
        $res_arr_values  = array("allocation_date"=>$item,"t_project"=>$project,"t_assign_to"=>$assign_to,"t_start_time"=>$start_time,"t_end_time"=>$due_time);//set up 2d arry with keys
        array_push($glopal_array,$res_arr_values);//push the array the global array
    }
    echo "<pre>";
    print_r($glopal_array);//print glopal array
    echo "</pre>";
    
    function list_days($date_from,$date_to){
        $arr_days = array();
        $arr_days[] = date('o-m-d',$date_from);
        $day_passed = ($date_to - $date_from); //seconds
        $day_passed = ($day_passed/86400); //days
        $counter = 1;
        $day_to_display = $date_from;
        while($counter < $day_passed){
            $day_to_display += 86400;
            //echo date("F j, Y \n", $day_to_display);
            $arr_days[] = date('o-m-d',$day_to_display);
            $counter++;
        }
        $arr_days[] = date('o-m-d',$date_to);
        return $arr_days;
    }
    
    

    출력 :

관련 자료

  • 이전 pyspark - sparksql str_to_date 대안
  • 다음 c# - SystemWindowsMediaMatrix는 SystemDouble 정밀 64 비트 숫자를 사용하지 않습니까?