PHP获取数组的子值

时间:2019-01-28 02:08:43

标签: php arrays

我有这个数组值:

Array
(
    [0] => DateTime Object
        (
            [date] => 2019-01-28 08:19:44
            [timezone_type] => 3
            [timezone] => Asia/Jakarta
        )
)

和PHP:

for($i = 0; $i < $rowsintimespanAccept; $i++)
{
    $a = array();

    $a[] = DateTime::createFromFormat($createFromFormat, $linesAccept[$i]);
    if(count(array_filter($a)) == count($a))
    {
        echo "<pre>";
        print_r($a);
    }
}

现在我的问题是如何获得[date]的价值?

我尝试使用此代码,但是空了。

print_r($a['date']);

已更新

现在我有了这个数组值:

DateTime Object
(
    [date] => 2019-01-28 08:21:01
    [timezone_type] => 3
    [timezone] => Asia/Jakarta
)
DateTime Object
(
    [date] => 2019-01-28 08:21:14
    [timezone_type] => 3
    [timezone] => Asia/Jakarta
)
DateTime Object
(
    [date] => 2019-01-28 08:19:44
    [timezone_type] => 3
    [timezone] => Asia/Jakarta
)

和PHP:

for($i = $readRowAfter; $i < count($linesAccept); $i++)
{
    $dateobjAccept = DateTime::createFromFormat($createFromFormat, $linesAccept[$i]);

    if($dateobjAccept < $toDateTime && $dateobjAccept > $fromDateTime)
    {
        $rowsintimespanAccept++;
    }

    echo "<pre>";
    print_r($dateobjAccept);
}

尝试使用此方法:

print_r($dateobjAccept->format('Y-m-j H:i:s'));

但只有结果:2。

1 个答案:

答案 0 :(得分:1)

使用print_r()DateTime对象内部查看,它像一个数组一样输出,但是由于它是一个对象,所以不能像数组一样简单地访问它。

您可以使用DateTime::format()提取任何给定格式的日期,因此在您的情况下$a[0]->format('Y-M-j H:i:s')将以与您在print_r()中看到的格式显示日期/时间输出。

来源:Why can't I access DateTime->date in PHP's DateTime class? Is it a bug?