Hi~我正在使用PHPExcel 1.7.7读取XLSX文件并在网页中显示结果。
我正在尝试获取存储日期的单元格的值;时间字符串,并使用以下代码在PHP中处理它。
<?php
date_default_timezone_set('Australia/Canberra');
$value = $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();
define('MIN_DATES_DIFF', 25569);
define('SEC_IN_DAY', 86400);
function excel2Timestamp($excelDate)
{
if($excelDate <= MIN_DATES_DIFF)
{
return 0;
}
return ($excelDate - MIN_DATES_DIFF) * SEC_IN_DAY;
}
echo $result = date('H:i:s d/m/Y', excel2Timestamp($value));
?>
虽然单元格中的原始值是"2012年7月1日00:00:00",但上面PHP代码的输出显示的不是正确的结果,而是"2012年07月1日10:00:00"。
这似乎是由时区差异引起的,但我已经在代码的开头定义了时区。不知道它出了什么问题。
有人能帮我吗?提前谢谢。
忘记将函数转换为时间戳(我也在做同样的事情)。。。PHPExcel自动进行转换,所以尝试这样做:
//get the excel date value (if it's stored in the A1 cell)
$excelDate = $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();
//converts from excel format to a datetime object
$date = PHPExcel_Shared_Date::ExcelToPHPObject($excelDate);
//format the date as you want.
$formatedDate = $date->format('m/d/Y');
它应该起作用。