Laravel-Excel 2,以Carbon格式从“日期”获取年份和月份

时间:2018-11-14 19:30:00

标签: php laravel-5 phpexcel laravel-excel

在Laravel-Excel 2中,我正在读取如下文件:

enter image description here

要读取的代码是这样:

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

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

enter image description here

我需要从“日期”中获取年份(2005)和月份(11)。 “日期”位于“ fecha”中,并且采用Carbon格式。我怎么才能得到它?我在阅读数组对象时遇到了很多问题。我以为$data[0]["fecha"]->date可以解决问题,但它可以与

结合使用
$data[0]["fecha"].["date"]

但是我在某些版本的带有“数组到字符串转换”的php版本中出现了一些错误,但是在我的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

我不知道那意味着什么...

2 个答案:

答案 0 :(得分:0)

尝试

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

EDIT:print_r($ data [0] [“ fecha”]。[“ date”]); die();的输出;是

2005-11-01 00:00:00Array

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

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

答案 1 :(得分:0)

尝试直接从Carbon对象调用:

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