gpt4 book ai didi

PHPExcel 日期字段与源电子表格不匹配

转载 作者:行者123 更新时间:2023-12-04 20:13:47 28 4
gpt4 key购买 nike

这是我的电子表格中的内容:

12/04/2011  8:56:17 p.m. (xls dateserial = 40645.87242)

这是我用来提取日期并在 PHP 中转换为日期字符串的代码:

$txn_date_xls = $sheet->getCell("H$row")->getValue();               
echo "Txn Date (original): $txn_date_xls<br />";

$txn_date = PHPExcel_Shared_Date::ExcelToPHP($txn_date_xls);
echo "Txn Date: ".date('Y-m-d H:i:s', $txn_date)."<br />";

这是我脚本的输出:

Txn Date (original): 40644.55783637732
Txn Date: 2011-04-11 13:23:17

日期序列与原始电子表格不匹配。因此,我试图确定这是否是 PHPExcel 的错误,或者我是否错过了设置或其他设置,我需要在从单元格中提取日期序列之前执行此操作。可能是时区问题?

抱歉,我对 PHPExcel 库还不是很熟悉。

最佳答案

我不太确定,但是...

函数date()在 PHP 中取决于服务器的时区设置。

PHPExcel_Shared_Date::ExcelToPHP() 假定提供的日期是 GMT 并相应地返回 Unix 时间。

因此尝试在脚本开头为 PHP 时区设置 GMT/UTC(使用 date_default_timezone_set())

date_default_timezone_set('UTC');

或者像这样(使用 ini_set() )

ini_set('date.timezone', 'UTC');

此外,尝试使用 gmdate()而不是 date() ,否则您可能会得到 1 天的补偿

可用链接:

关于PHPExcel 日期字段与源电子表格不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657511/

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