300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php将excel日期转成时间戳 使用PHP将Excel日期编号转换为Unix时间戳时不匹配

php将excel日期转成时间戳 使用PHP将Excel日期编号转换为Unix时间戳时不匹配

时间:2023-06-07 07:47:15

相关推荐

php将excel日期转成时间戳 使用PHP将Excel日期编号转换为Unix时间戳时不匹配

嗨〜我正在使用PHPExcel 1.7.7读取XLSX文件并在网页中显示结果.

我正试图获得一个存储日期和时间的单元格的值.时间字符串并使用以下代码在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));

?>

虽然单元格中的原始值是“00:00:00 01/07/”,而不是给我正确的结果,上面的PHP代码的输出显示“10:00:00 01/07/”.

它似乎是由时区差异引起的,但我已经在代码的开头定义了时区.不知道它有什么问题.

有人可以帮我吗?提前致谢.

解决方法:

忘记你的函数转换为时间戳(我也是这样做的)… 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');

它应该工作.

标签:php,timezone,date,phpexcel

来源: https://codeday.me/bug/0901/1786034.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。