Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从数组值计算不同的时间_Php_Arrays - Fatal编程技术网

Php 如何从数组值计算不同的时间

Php 如何从数组值计算不同的时间,php,arrays,Php,Arrays,我的阵型如下: $data = [ '0' => [ 'depart' => '2021-02-09 10:50:00', 'arrival' => '2021-02-09 13:10:00', ], '1' => [ 'depart' => '2021-02-09 14:50:00', 'arrival' => '2021-02-09 15:30:00', ], '2' => [ 'depart' => '

我的阵型如下:

$data = [
'0' => [
    'depart' => '2021-02-09 10:50:00',
    'arrival' => '2021-02-09 13:10:00',
],
'1' => [
    'depart' => '2021-02-09 14:50:00',
    'arrival' => '2021-02-09 15:30:00',
],
'2' => [
    'depart' => '2021-02-09 18:20:00',
    'arrival' => '2021-02-09 19:40:00',
]
])

从上面的数组中,我想计算不同的时间:

0 = calculate different time between [0]['arrival'] and [1]['depart']
1 = calculate different time between [1]['arrival'] and [2]['depart']
我的代码:

$diff_time = [];
foreach ($data as $d => $dta) {
    $diff_time[$d] = timeDifference($dta['arrival'], $dta['depart']);
}

谢谢您的帮助。

您可以执行以下操作,然后可以使用日期的任何变量,如[y]=>0

[m] =>0 [d] =>0 [h] =>2 [i] =>50 [s] =>0

您将得到如下打印输出:

排列


这回答了你的问题吗?我认为这只是一个开始和结束日期之间的时间。使用上面的数组值如何。请告知这个问题何时提交。我找不到。谢谢,修改副本中的代码以处理数组非常容易,例如,如下面的答案所示。
$data = [
'0' => [
    'depart' => '2021-02-09 10:50:00',
    'arrival' => '2021-02-09 13:10:00',
],
'1' => [
    'depart' => '2021-02-09 14:50:00',
    'arrival' => '2021-02-09 15:30:00',
],
'2' => [
    'depart' => '2021-02-09 18:20:00',
    'arrival' => '2021-02-09 19:40:00',
] ];


$diff_time = [];
foreach ($data as $d => $dta) {
    if(isset( $data[$d+1]) &&  $data[$d+1]){
        $dif = date_diff( date_create($data[$d]['arrival']), date_create($data[$d+1]['depart']));
        $diff_time[$d] = $dif;
    }
    
}
print_r($diff_time);
(
    [0] => DateInterval Object
        (
            [y] => 0
            [m] => 0
            [d] => 0
            [h] => 1
            [i] => 40
            [s] => 0
            [weekday] => 0
            [weekday_behavior] => 0
            [first_last_day_of] => 0
            [invert] => 0
            [days] => 0
            [special_type] => 0
            [special_amount] => 0
            [have_weekday_relative] => 0
            [have_special_relative] => 0
        )

    [1] => DateInterval Object
        (
            [y] => 0
            [m] => 0
            [d] => 0
            [h] => 2
            [i] => 50
            [s] => 0
            [weekday] => 0
            [weekday_behavior] => 0
            [first_last_day_of] => 0
            [invert] => 0
            [days] => 0
            [special_type] => 0
            [special_amount] => 0
            [have_weekday_relative] => 0
            [have_special_relative] => 0
        )

)