Laravel-Excel 2、从"date"中获取Carbon格式的年月

Laravel-Excel 2, get the year and month from "date" in Carbon format

在 Laravel-Excel 2 中,我正在读取这样的文件:

读取它的代码是这样的:

$my_file ='some/path/to/my_file.xls';
$data = Excel::selectSheetsByIndex(0)->load($my_file, function($reader) {})->get()->toArray();

这是 dd($data[0]); 的输出,考虑到 data 是一个数组:

我需要从 "date" 中获取年份 (2005) 和月份 (11)。 "date" 在 "fecha" 里面并且是 Carbon 格式。我怎么才能得到它?我在阅读那个数组对象的东西时遇到了很多问题。我认为 $data[0]["fecha"]->date 可以解决问题,但它不是这样工作的:

$data[0]["fecha"].["date"]

但是我在 php 和 "Array to string conversion" 的某些版本中遇到了一些错误,但是在我的 php 中它没有显示错误, 所以我应该怎么得到那个年和那个月?我不明白。

这是print_r($data[0]);die();的输出:

Array (
    [fecha] => Carbon\Carbon Object (
        [date] => 2005-11-01 00:00:00.000000 [timezone_type] => 3 [timezone] => America/Santiago 
    ) 
    [hora] => 
    [bloquefr] => N 
    [dia] => 1 
    [activo_defecto] => 118.209 
    [reactivo_defecto] => 0 
    [empresa] => Luz Osorno 
    [barra_internal_name] => La Union 13.8 
    [barra_cen_name] => La Union 13.8 
    [barra_cne_name] => L.UNION_______013 
    [barra_cen_name_2] => La Union 1 023 
    [tipo_barra] => SPD 
)

编辑:print_r($data[0]["fecha"].["date"]);die(); 的输出是

2005-11-01 00:00:00Array

我不知道这是什么意思...

尝试

$data[0]["fecha"]->formatLocalized('Y');   // 2005
$data[0]["fecha"]->formatLocalized('m');   // 11

编辑:print_r($data[0]["fecha"].["date"]);die(); 的输出是

2005-11-01 00:00:00Array

因为您要将 $data[0]["fecha"] 和 ["date"] 与运算符“.”连接起来并打印出来。在内部,被解释为:

$data[0]["fecha"]->toString.["date"]->toString

尝试直接从 Carbon 对象调用:

$str = $data[0]["fecha"]->format('Y m');