use*_*950 29 php date phpexcel
我正在尝试使用PHPExcel从excel获取Date.但我没有得到约会,我得到的字符串值不是1970年的秒数.
我试过的代码是
$InvDate=trim($excel->getActiveSheet()->getCell('B' . $i)->getValue());
Run Code Online (Sandbox Code Playgroud)
Ser*_*gey 56
试试用
$cell = $excel->getActiveSheet()->getCell('B' . $i);
$InvDate= $cell->getValue();
if(PHPExcel_Shared_Date::isDateTime($cell)) {
$InvDate = date($format, PHPExcel_Shared_Date::ExcelToPHP($InvDate));
}
Run Code Online (Sandbox Code Playgroud)
PS
@DiegoDD:应该提到$ format是日期所需的格式.例如:
$InvDate = date($format = "Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($InvDate));
Run Code Online (Sandbox Code Playgroud)
PPS 2019看看答案@ gabriel-lupu,新版PhpOffice /sf/answers/3154914381/
Mar*_*ker 13
对于日期,getValue()应该返回一个浮点数,这是该日期/时间的Excel序列化时间戳值...我怀疑它是你的trim()将它转换为字符串.实际值是自19/1年1月1日以来的天数(或1/1/1904,具体取决于电子表格使用的日历).
调用getFormattedValue()或getCalculatedValue()而不是getValue()应该根据单元格的numberformatmask返回格式化为人类可读字符串的日期.
或者,Sergey的解决方案测试单元格是否具有日期/时间numberformatmask并调用适当的辅助方法将Excel序列化时间戳转换为unix时间戳,然后使用普通的PHP日期函数将其格式化为人类可读的值,具体取决于$格式.有一个类似的辅助方法PHPExcel_Shared_Date :: ExcelToPHPObject(),它将Excel序列化时间戳转换为PHP DateTime对象
| 归档时间: |
|
| 查看次数: |
44492 次 |
| 最近记录: |