Laravel 5 Laravel PHPExcel将日期转换为双精度
我尝试导入一个excel文件,其中包含一个列,该列的日期由带有Laravel 5.4的PHPExcel格式化。PHPExcel将文件和输出日期读取为双倍数字。PHP的date()函数无法转换为日期以导入数据库 有人有同样的问题吗 更新:这是我的代码Laravel 5 Laravel PHPExcel将日期转换为双精度,laravel-5,phpexcel,Laravel 5,Phpexcel,我尝试导入一个excel文件,其中包含一个列,该列的日期由带有Laravel 5.4的PHPExcel格式化。PHPExcel将文件和输出日期读取为双倍数字。PHP的date()函数无法转换为日期以导入数据库 有人有同样的问题吗 更新:这是我的代码 Excel::filter('chunk') ->selectSheetsByIndex(1) ->load(config('excel.import.storage').$
Excel::filter('chunk')
->selectSheetsByIndex(1)
->load(config('excel.import.storage').$fileName)
->chunk(1000, function($rows) {
foreach ($rows as $i=>$row) {
dd($row->toArray());
}
});
excel列中的日期为2017年3月3日。输出为42797.0,因此date()函数无法工作。在内部,MS Excel将日期存储为浮点/双精度、序列化的时间戳(类似于Unix时间戳,但计算天数而不是秒,并且使用不同的基准日期)。我不太熟悉laravel的Maatwebsite包装器,无法解释为什么
->formatDates(true)
没有将该时间戳转换为格式化的日期/时间,但PHPExcel确实提供了在Excel时间戳和格式化的日期/时间之间转换的本机功能(或者在UnixTys\PHPExcel SyrDyDATAs/<代码>类中使用UNIX时戳或DATEIME对象。谢谢您的评论。我发现自己的答案比我想的要容易。您认为下面的代码导入Excel文件有日期栏。
Excel::selectSheetsByIndex(1)
->load(config('excel.import.storage').$fileName, function ($reader){
$rows = $reader->all();
dd($rows[0]->ngay->format('Y-m-d'));
});
结果将打印为格式字符串d-m-Y,m-d-Y,…至少提供您尝试过的内容?还提供一个示例,说明您在通过PHPExcel阅读本专栏后从中获得的内容。抱歉!->formatDates(true)“可能重复”是我在发布代码之前没有删除的错误。