gpt4 book ai didi

php - 使用 PHP 将 Excel 日期数字转换为 Unix 时间戳时不匹配

转载 作者:可可西里 更新时间:2023-11-01 00:48:35 24 4
gpt4 key购买 nike

您好~我正在使用 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));

?>

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

好像是时区不同导致的,不过我在代码开头已经定义了时区。不知道它有什么问题。

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

最佳答案

忘记转换为时间戳的函数(我也在做同样的事情)...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 - 使用 PHP 将 Excel 日期数字转换为 Unix 时间戳时不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com