美好的一天家伙 我对如何检测单元格值是否已被格式化至日期有疑问 当我上传日期值时使用此代码PHPExcel检测单元格值是否为格式
$data = $objWorksheet->getCellByColumnAndRow($col, $row);
当单元格值格式化为日期值$data = 27474
不$data = 12/2/1983
时,然后我用这个代码格式化自己的最新
if(PHPExcel_Shared_Date::isDateTime($data)){
$cellValue = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
$dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue);
$dob = date('Y-m-d',$dateValue);
}
现在,问题是当$data
是在日期格式化这个代码是OK,但是当$data
未格式化的值是$data = 2036-02-18
这是错误的值
谁能帮助我如何解决这个问题,在此先感谢
使用'PHPExcel_Shared_D ate :: isDateTime()'是识别一个单元格是否包含日期值的正确方法,但是也应该注意,如果一个文件已经被加载了'readDataOnly'设置为'true',那么就没有方法来识别日期值,因为它只是将日期值与正常浮点值区分开来的数字格式掩码 – 2015-02-12 11:33:41
您的其他选择是在知道单元格包含一个单元格时调用'getFormattedValue()'而不是'getValue()'日期,虽然这将返回格式化字符串的日期(使用与MS Excel中相同的格式),这可能并不总是与您希望在脚本中格式化的方式一致 – 2015-02-12 11:44:08
但是,如果单元格仅包含一个字符串(例如)“2015年2月12日”的值,那么这只是一个字符串,并且PHPExcel不会将其识别为日期 – 2015-02-12 11:54:27