我正在阅读一个Excel文件,其中一列的值类似于“1:45:00”。但是当我从我的数组中打印出print_r($value["time"])
时,得到了一个如下所示的Carbon对象:
Carbon\Carbon Object
(
[date] => 2018-10-30 01:45:00.000000
[timezone_type] => 3
[timezone] => America/US
)
然后,当我使用以下代码将值插入到批量数组中:
"time"=>$value["time"]
在数据库中,我得到了这个:
2018-10-30 01:45:00
。如何只插入
01:45:00
而不是整个时间戳?编辑:我认为
$value["time"]->date->格式("H:i:s")
会起作用,但我得到了错误“尝试获取非对象的属性'date'”。编辑2:这是我读取数据的方式:
Excel表格如下:
date time
---------- -------
30-10-2018 01:45:00
我读取Excel的代码:
$data = Excel::selectSheetsByIndex(0)->load($path, function($reader) {
})->get()->toArray();
foreach ($data as $key => $value) {
$time = Carbon::createFromFormat('Y-m-d h:i:s',$value["time"])->format('h:i:s');
print_r($time);
die();
}
输出结果:
调用一个空对象的方法format()。
$value
的代码吗? - Patrick Q$value["time"]->toTimeString()
,但是除非你在print_r和代码的其他部分之间进行了操作,否则你得到的错误很有趣。 - aynbercreateFromFormat()
返回了null
,因为格式与你的time
列的格式不匹配。你在问题中提到的错误实际上是由什么原始代码引起的?你是如何创建$value
的,以至于在一个地方它被视为对象,在另一个地方却不是? - Patrick Q