2017-05-26 13 views
0

我正在使用PHPExcel将数据导入数据库。一切进展顺利,但我在数据列中遇到问题。如果是Excel表格,我有两种类型。一个日期列作为一般格式,它没有给出任何错误。日期不以所需的格式转换

但是在第二个excel表单中,出现了一些调试后出现错误,我发现在excel中格式化了日期格式的单元格。

这是我尝试运行

$formatted_date = $this->worksheet->getCell($this->date . $row)->getFormattedValue(); 
     $dat = date_format($formatted_date, "Y/m/d"); 

我是把它转换成日期和由此我得到这个错误代码

date_format() expects parameter 1 to be DateTimeInterface, string given 

然后我试图使它的日期格式对象从此通过创建日期

$formatted_date = date_create($this->worksheet->getCell($this->date . $row)->getFormattedValue()); 
     $dat = date_format($formatted_date, "Y/m/d"); 

但是然后它给出布尔型错误

date_format() expects parameter 1 to be DateTimeInterface, boolean given 

任何帮助将不胜感激,如果这是phpexcel pr php问题。

+0

已检查:https://stackoverflow.com/a/15567999/5447994? – Thamilan

回答

1

如果日期是日期时间无法识别,那么你或许应该使用date_create_from_format()代替,并告诉它你使用的是什么格式的格式。

或者,而不是使用

$formatted_date = $this->worksheet->getCell($this->date . $row)->getFormattedValue(); 

使用

$dateTimeObject = PHPExcel_Shared_Date::ExcelToPHPObject(
    $this->worksheet->getCell($this->date . $row)->getValue() 
); 

,然后你可以使用所有适当的PHP DateTime object方法,如format()做任何你想要的值。

+0

你好@Mark Ba​​ker先生!为什么我不使用的理由是,我必须指定日期的格式。 –

+1

你究竟想实现什么?它看起来就像你正在试图获得格式为'“Y/M/d”'....所以什么都不能使用我的其他建议日期字符串? –

+0

对不起,我以前的评论不完整是的,我正在尝试你的替代解决方案。 –